UNPKG

@storybook/addon-docs

Version:
85 lines (58 loc) 2.26 kB
"use strict"; require("core-js/modules/es.array.for-each"); require("core-js/modules/es.array.iterator"); require("core-js/modules/es.array.map"); require("core-js/modules/es.map"); require("core-js/modules/es.object.keys"); require("core-js/modules/es.object.to-string"); require("core-js/modules/es.string.iterator"); require("core-js/modules/web.dom-collections.for-each"); require("core-js/modules/web.dom-collections.iterator"); Object.defineProperty(exports, "__esModule", { value: true }); exports.extractProps = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _reactIs = require("react-is"); var _docgen = require("../../lib/docgen"); var _handleProp = require("./propTypes/handleProp"); var _handleProp2 = require("./typeScript/handleProp"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var propTypesMap = new Map(); Object.keys(_propTypes["default"]).forEach(function (typeName) { // @ts-ignore var type = _propTypes["default"][typeName]; propTypesMap.set(type, typeName); propTypesMap.set(type.isRequired, typeName); }); function getPropDefs(component, section) { var processedComponent = component; // eslint-disable-next-line react/forbid-foreign-prop-types if (!(0, _docgen.hasDocgen)(component) && !component.propTypes) { if ((0, _reactIs.isForwardRef)(component) || component.render) { processedComponent = component.render().type; } if ((0, _reactIs.isMemo)(component)) { processedComponent = component.type().type; } } var extractedProps = (0, _docgen.extractComponentProps)(processedComponent, section); if (extractedProps.length === 0) { return []; } switch (extractedProps[0].typeSystem) { case _docgen.TypeSystem.JAVASCRIPT: return (0, _handleProp.enhancePropTypesProps)(extractedProps, component); case _docgen.TypeSystem.TYPESCRIPT: return (0, _handleProp2.enhanceTypeScriptProps)(extractedProps); default: return extractedProps.map(function (x) { return x.propDef; }); } } var extractProps = function extractProps(component) { return { rows: getPropDefs(component, 'props') }; }; exports.extractProps = extractProps;