From 9a7476157e42fd34162d0615fce218429bc97ccc Mon Sep 17 00:00:00 2001 From: Jerel Miller Date: Sun, 7 Jun 2020 00:12:57 -0700 Subject: [PATCH] chore: Move getPropTypeDefinition into utils file --- src/hooks/useComponentDoc.js | 29 ++++------------------------- src/utils/propTypeInfo.js | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/src/hooks/useComponentDoc.js b/src/hooks/useComponentDoc.js index 8954ea01a..e90321d96 100644 --- a/src/hooks/useComponentDoc.js +++ b/src/hooks/useComponentDoc.js @@ -1,9 +1,5 @@ import { useMemo } from 'react'; -import { - getDefaultValue, - getNormalizedTypeName, - getRawTypeName, -} from '../utils/propTypeInfo'; +import { getPropTypeDefinition, getDefaultValue } from '../utils/propTypeInfo'; const IGNORED_METHODS = [ 'prototype', @@ -14,27 +10,10 @@ const IGNORED_METHODS = [ 'defaultProps', ]; -const getPropTypeDefinition = (name, propType) => { - const propDocs = propType.__docs__; - const propMeta = propType.__reflect__; - - return { - name, - description: propDocs.text, - deprecation: propDocs.tags.deprecated?.[0] ?? null, - isRequired: propMeta.some((item) => item.name === 'isRequired'), - type: { - raw: getRawTypeName(propType), - name: getNormalizedTypeName(propType), - }, - }; -}; - const extractPropTypes = (component) => { - return Object.entries(component.propTypes || {}).map(([name, propType]) => ({ - ...getPropTypeDefinition(name, propType), - defaultValue: getDefaultValue(component, name), - })); + return Object.entries(component.propTypes || {}).map(([name, propType]) => + getPropTypeDefinition(component, name, propType) + ); }; const toStaticName = (propName) => diff --git a/src/utils/propTypeInfo.js b/src/utils/propTypeInfo.js index b58d9f7db..6441a16ba 100644 --- a/src/utils/propTypeInfo.js +++ b/src/utils/propTypeInfo.js @@ -91,3 +91,20 @@ export const getDefaultValue = (component, propTypeName) => { return defaultValue; }; + +export const getPropTypeDefinition = (component, name, propType) => { + const propDocs = propType.__docs__; + const propMeta = propType.__reflect__; + + return { + name, + defaultValue: getDefaultValue(component, name), + description: propDocs.text, + deprecation: propDocs.tags.deprecated?.[0] ?? null, + isRequired: propMeta.some((item) => item.name === 'isRequired'), + type: { + raw: getRawTypeName(propType), + name: getNormalizedTypeName(propType), + }, + }; +};