From 521801f87033fcb6dca420dee020ab3dca8560e7 Mon Sep 17 00:00:00 2001 From: Jerel Miller Date: Mon, 8 Jun 2020 13:54:49 -0700 Subject: [PATCH] chore: Remove old unused code to generate prop type docs --- src/hooks/useComponentDoc.js | 99 +----------------------------------- 1 file changed, 1 insertion(+), 98 deletions(-) diff --git a/src/hooks/useComponentDoc.js b/src/hooks/useComponentDoc.js index 31c7c0d66..c02dad64f 100644 --- a/src/hooks/useComponentDoc.js +++ b/src/hooks/useComponentDoc.js @@ -1,5 +1,5 @@ import { useMemo } from 'react'; -import { getPropTypeDefinition, getDefaultValue } from '../utils/propTypeInfo'; +import { getPropTypeDefinition } from '../utils/propTypeInfo'; const IGNORED_METHODS = [ 'prototype', @@ -16,103 +16,6 @@ const extractPropTypes = (component) => { ); }; -const toStaticName = (propName) => - propName - .replace(/(.+?)(?=[A-Z])/g, '$1_') - .replace('.', '_') - .toUpperCase(); - -const processPropType = (component, propName, prop) => { - const propDocs = prop.__docs__; - const propMeta = prop.__reflect__; - const type = processType(component, propName, propMeta); - - const staticName = toStaticName(propName); - - const enums = - type.isOneOf || type.isArrayOfOneOf - ? Object.keys(component[staticName] || {}).map( - (name) => `${component.name}.${staticName}.${name}` - ) - : []; - - return { - ...type, - description: propDocs?.text, - example: propDocs?.tags?.examples?.[0], - isRequired: propMeta.some((item) => item.name === 'isRequired'), - params: propDocs?.tags?.param, - deprecated: propDocs?.tags?.deprecated?.[0], - returns: propDocs?.tags?.returns, - defaultValue: getDefaultValue(component, propName), - enums, - }; -}; - -// TODO: refactor: remove switch? remove let usage? breakdown into smaller functions? -const processType = (component, propName, propMeta) => { - const propTypeName = propMeta[1].name; - const isOneOf = propTypeName === 'oneOf'; - const isArrayOf = propTypeName === 'arrayOf'; - const isArrayOfOneOf = - isArrayOf && propMeta[2].args[0].__reflect__[1].name === 'oneOf'; - - let displayType; - let shapes = []; - - const mapArgsToTypes = (arg) => { - const { displayType, shapes: s } = processType( - component, - propName, - arg.__reflect__ - ); - shapes = shapes.concat(s); - - return displayType; - }; - - const args = (propMeta.find((m) => m.args) || {}).args; - - switch (propTypeName) { - case 'oneOf': - displayType = 'enum'; - break; - case 'oneOfType': - displayType = args[0].map(mapArgsToTypes).join('|'); - break; - case 'arrayOf': { - const arrayTypes = args.map(mapArgsToTypes).toString(); - displayType = - arrayTypes.indexOf('|') >= 0 ? `(${arrayTypes})[]` : `${arrayTypes}[]`; - break; - } - case 'func': - displayType = 'function'; - break; - case 'bool': - displayType = 'boolean'; - break; - default: - displayType = propTypeName; - } - - if (displayType === 'shape') { - shapes.push( - Object.entries(args[0]).map(([name, prop]) => ({ - ...processPropType(component, `${propName}.${name}`, prop), - name, - })) - ); - } - - return { - displayType, - isOneOf, - isArrayOfOneOf, - shapes, - }; -}; - const useComponentDoc = (componentName) => { if (typeof window === 'undefined') global.window = {};