{"version":3,"file":"main.mjs","sources":["../src/makeSimplePropType.js","../src/utils.js","../src/shape.js","../src/instanceOf.js","../src/oneOf.js","../src/oneOfType.js","../src/arrayOf.js","../src/objectOf.js","../src/docsToProps.js","../src/docsToDefaults.js","../src/setComponentProps.js","../src/index.js"],"sourcesContent":["// takes a docs-prop object and returns a documentation object\nconst getDocs = (prop) => {\n\tconst { displayName, required } = prop.type();\n\treturn {\n\t\ttype: displayName,\n\t\trequired,\n\t\tdescription: prop.description,\n        default: prop.default\n\t}\n}\n\n// makes a simple docs-prop type\nexport const makeSimplePropType = (displayName, reactPT, required = false) => ({\n\tdisplayName,\n\trequired,\n\tgetReactPT: () => reactPT,\n\tgetDocs,\n\tgetOneOfTypeDescription: () => ({\n\t\ttype: displayName\n\t})\n});","export const mapObject = (mapper) => (object) => Object.keys(object).reduce((output, key) => {\n\toutput[key] = mapper(object[key]);\n\treturn output;\n}, {});\n\nexport const objectToArray = (keyProp, valProp) => (object) => Object.keys(object).map(key => ({\n    [keyProp]: key,\n    [valProp]: object[key]\n}));\n\n\nexport const mapToReactPT = mapObject(prop => prop.type().getReactPT());\nexport const mapToDefaults = mapObject(prop => prop.default);\nexport const mapToDocs = mapObject(prop => prop.type().getDocs(prop));\n\n\nexport const objectToArrayNameDocs = objectToArray('name', 'docs');\n\nexport const propsToDocs = (props) => objectToArrayNameDocs(mapToDocs(props));\n\nexport const shapeToDocs = (shape) => objectToArrayNameDocs(shape);\n\nexport const arrayOfToDocs = (arrayOf) => ({\n    name: '',\n    docs: arrayOf\n});\n\n\nexport const display = (value) => {\n    if (typeof value === 'object') {\n        return JSON.stringify(value, null, 2);\n    }\n    if (Array.isArray(value)) {\n        return `[ ${value.map(v => display(v)).join(', ')} ]`;\n    }\n    return value;\n}\n\nexport const mapToOneOfTypeDescription = mapObject(prop => {\n\tconst { type, description } = prop.type(prop).getDocs(prop);\n\treturn {\n\t\ttype,\n\t\tdescription\n\t}\n});\n\nexport const ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';","import PropTypes from 'prop-types';\nimport { mapToDocs, mapToReactPT, mapToOneOfTypeDescription } from './utils';\n\n// takes a shape docs-prop and converts it to a documentation object\nconst getDocs = (prop) => {\n\tconst { displayName, required, shape } = prop.type();\n\treturn {\n\t\ttype: displayName,\n\t\trequired,\n        description: prop.description,\n        default: prop.default,\n\t\tshape: mapToDocs(shape)\n\t};\n}\n\n// takes a doc-props shape object and returns the react proptype for that shape\nconst makeGetReactPT = (required) => (theShape) => {\n\tconst reactPT = PropTypes.shape(mapToReactPT(theShape));\n\n\treturn () => {\n\t\tif (required) return reactPT.isRequired;\n\t\treturn reactPT;\n\t}\n};\n\n// makes a doc-props shape proptype\nexport const makeShapeProptype = (required, theShape) => () => ({\n\tdisplayName: 'Shape',\n\tgetReactPT: makeGetReactPT(required)(theShape),\n\trequired,\n\tgetDocs,\n\tshape: theShape,\n\tgetOneOfTypeDescription: () => ({\n\t\ttype: 'Shape',\n\t\tshape: mapToOneOfTypeDescription(theShape)\n\t})\n});","import PropTypes from 'prop-types';\nimport { mapToDocs, mapToReactPT } from './utils';\n\n// takes a shape docs-prop and converts it to a documentation object\nconst getDocs = (prop) => {\n\tconst { displayName, required, shape } = prop.type();\n\treturn {\n\t\ttype: displayName,\n\t\trequired,\n        description: prop.description,\n        default: prop.default\n\t};\n}\n\n// takes a doc-props shape object and returns the react proptype for that shape\nconst makeGetReactPT = (required) => (theType) => {\n\tconst reactPT = PropTypes.instanceOf(theType);\n\n\treturn () => {\n\t\tif (required) return reactPT.isRequired;\n\t\treturn reactPT;\n\t}\n};\n\nconst getTypeName = (theType) => {\n\tvar funcNameRegex = /function (.{1,})\\(/;\n\tvar results = (funcNameRegex).exec(theType.constructor.toString());\n\treturn (results && results.length > 1) ? results[1] : \"Unknown type\";\n}\n\n\n// makes a doc-props shape proptype\nexport const makeInstanceOfProptype = (required, theType, typeName) => () => ({\n\tdisplayName: `Instance Of ${typeName || getTypeName(theType)}`,\n\tgetReactPT: makeGetReactPT(required)(theType),\n\trequired,\n\tgetDocs\n});","import PropTypes from 'prop-types';\nimport { mapToDocs, mapToReactPT } from './utils';\n\n// takes a shape docs-prop and converts it to a documentation object\nconst getDocs = (prop) => {\n\tconst { displayName, required } = prop.type();\n\treturn {\n\t\ttype: displayName,\n\t\trequired,\n        description: prop.description,\n        default: prop.default\n\t};\n}\n\n// takes a doc-props shape object and returns the react proptype for that shape\nconst makeGetReactPT = (required) => (theEnum) => {\n\tconst reactPT = PropTypes.oneOf(theEnum);\n\n\treturn () => {\n\t\tif (required) return reactPT.isRequired;\n\t\treturn reactPT;\n\t}\n};\n\nconst enumToName = (theEnum) => {\n\treturn theEnum.map(item => ' ' + item ).join().trim();\n};\n\n\n// makes a doc-props shape proptype\nexport const makeOneOfProptype = (required, theEnum) => () => ({\n\tdisplayName: `One of [${enumToName(theEnum)}]`,\n\tgetReactPT: makeGetReactPT(required)(theEnum),\n\trequired,\n\tgetDocs\n});","import PropTypes from 'prop-types';\nimport { mapToDocs, mapToReactPT } from './utils';\n\n// takes a shape docs-prop and converts it to a documentation object\nconst getDocs = (theTypes) => (prop) => {\n\tconst { displayName, required } = prop.type();\n\treturn {\n\t\ttype: displayName,\n\t\trequired,\n        description: prop.description,\n        default: prop.default,\n\t\ttypes: theTypes.map(type => type().getOneOfTypeDescription())\n\t};\n}\n\n// takes a doc-props shape object and returns the react proptype for that shape\nconst makeGetReactPT = (required) => (theTypes) => {\n\tconst reactPT = PropTypes.oneOfType(theTypes.map(type => (\n\t\ttype().getReactPT()\n\t)));\n\n\treturn () => {\n\t\tif (required) return reactPT.isRequired;\n\t\treturn reactPT;\n\t}\n};\n\nconst typesToName = (theTypes) => {\n\treturn theTypes.map(type => ' ' + type().displayName).join().trim();\n};\n\n\n// makes a doc-props oneOfType proptype\nexport const makeOneOfTypeProptype = (required, theTypes) => () => ({\n\tdisplayName: `One of type [${typesToName(theTypes)}]`,\n\tgetReactPT: makeGetReactPT(required)(theTypes),\n\trequired,\n\tgetDocs: getDocs(theTypes)\n});","import PropTypes from 'prop-types';\nimport { mapToDocs, mapToReactPT } from './utils';\n\nconst getArrayOfDoc = (theType) => {\n\tif ('type' in theType) {\n\t\treturn theType.type().getDocs(theType);\n\t}\n\n\tconst { getDocs, getReactPT, getOneOfTypeDescription, displayName, required, shape, arrayOf, ...rest } = theType();\n\treturn {\n\t\ttype: displayName,\n\t\trequired,\n\t\t...rest\n\t}\n}\n\n// takes a shape docs-prop and converts it to a documentation object\nconst getDocs = (theType) => (prop) => {\n\tconst { displayName, required, description, arrayOf } = prop.type();\n\n\treturn {\n\t\ttype: displayName,\n\t\trequired,\n        description: prop.description,\n        default: prop.default,\n\t\tarrayOf: getArrayOfDoc(theType)\n\t};\n}\n\n// takes a doc-props shape object and returns the react proptype for that shape\nconst makeGetReactPT = (required) => (theType) => {\n\tconst arrayOfType = 'type' in theType ? theType.type().getReactPT() : theType().getReactPT();\n\tconst reactPT = PropTypes.arrayOf(arrayOfType);\n\n\treturn () => {\n\t\tif (required) return reactPT.isRequired;\n\t\treturn reactPT;\n\t}\n};\n\nconst typeToName = (theType) => {\n\tif ('type' in theType) {\n\t\treturn theType.type().displayName;\n\t}\n\treturn theType().displayName;\n};\n\n\n// makes a doc-props arrayOf proptype\nexport const makeArrayOfProptype = (required, theType) => () => ({\n\tdisplayName: `Array of type ${typeToName(theType)}`,\n\tgetReactPT: makeGetReactPT(required)(theType),\n\trequired,\n\tgetDocs: getDocs(theType),\n\tarrayOf: theType\n});","import PropTypes from 'prop-types';\nimport { mapToDocs, mapToReactPT } from './utils';\n\nconst getObjectOfDoc = (theType) => {\n\tif ('type' in theType) {\n\t\treturn theType.type().getDocs(theType);\n\t}\n\n\tconst { getDocs, getReactPT, getOneOfTypeDescription, displayName, required, shape, arrayOf, ...rest } = theType();\n\treturn {\n\t\ttype: displayName,\n\t\trequired,\n\t\t...rest\n\t}\n}\n\n// takes a shape docs-prop and converts it to a documentation object\nconst getDocs = (theType) => (prop) => {\n\tconst { displayName, required, description, arrayOf } = prop.type();\n\n\treturn {\n\t\ttype: displayName,\n\t\trequired,\n\t\tdescription: prop.description,\n        default: prop.default,\n\t\tobjectOf: getObjectOfDoc(theType)\n\t};\n}\n\n// takes a doc-props shape object and returns the react proptype for that shape\nconst makeGetReactPT = (required) => (theType) => {\n\tconst arrayOfType = 'type' in theType ? theType.type().getReactPT() : theType().getReactPT();\n\tconst reactPT = PropTypes.objectOf(arrayOfType);\n\n\treturn () => {\n\t\tif (required) return reactPT.isRequired;\n\t\treturn reactPT;\n\t}\n};\n\nconst typeToName = (theType) => {\n\tif ('type' in theType) {\n\t\treturn theType.type().displayName;\n\t}\n\treturn theType().displayName;\n};\n\n\n// makes a doc-props objectOf proptype\nexport const makeObjectOfProptype = (required, theType) => () => ({\n\tdisplayName: `Object with ${typeToName(theType)} property values`,\n\tgetReactPT: makeGetReactPT(required)(theType),\n\trequired,\n\tgetDocs: getDocs(theType),\n\tarrayOf: theType\n});","import { mapToReactPT } from './utils';\n\nexport const docsToProps = (docs) => {\n\treturn mapToReactPT(docs.props);\n};","import { mapToDefaults } from './utils';\n\nexport const docsToDefaults = (docs) => {\n    return mapToDefaults(docs.props);\n}","import { docsToProps } from './docsToProps';\nimport { docsToDefaults } from './docsToDefaults';\n\nexport const setComponentProps = (documentation, component) => {\n    component.propTypes = docsToProps(documentation);\n    component.defaultProps = docsToDefaults(documentation);\n}","import PropTypes from 'prop-types';\nimport { makeSimplePropType } from './makeSimplePropType';\nimport { makeShapeProptype } from './shape';\nimport { makeInstanceOfProptype } from './instanceOf';\nimport { makeOneOfProptype } from './oneOf';\nimport { makeOneOfTypeProptype } from './oneOfType';\nimport { makeArrayOfProptype } from './arrayOf';\nimport { makeObjectOfProptype } from './objectOf';\nimport { propsToDocs } from './utils';\n\nexport { docsToProps } from './docsToProps';\nexport { docsToDefaults } from './docsToDefaults';\nexport { setComponentProps } from './setComponentProps';\n\nexport const generateDocs = ({ name, description, props }) => ({\n    name,\n    description,\n    props: propsToDocs(props)\n});\n\nexport function string() {\n\treturn makeSimplePropType('String', PropTypes.string);\n}\n\nstring.isRequired = function () {\n\treturn makeSimplePropType('String', PropTypes.string.isRequired, true);\n}\n\n\nexport function number() {\n\treturn makeSimplePropType('Number', PropTypes.number);\n}\n\nnumber.isRequired = function() {\n\treturn makeSimplePropType('Number', PropTypes.number.isRequired, true);\n}\n\n\nexport function array() {\n\treturn makeSimplePropType('Array', PropTypes.array);\n}\n\narray.isRequired = function() {\n\treturn makeSimplePropType('Array', PropTypes.array.isRequired, true);\n}\n\n\nexport function bool() {\n\treturn makeSimplePropType('Boolean', PropTypes.bool);\n}\n\nbool.isRequired = function() {\n\treturn makeSimplePropType('Boolean', PropTypes.bool.isRequired, true);\n}\n\n\nexport function func() {\n\treturn makeSimplePropType('Function', PropTypes.func);\n}\n\nfunc.isRequired = function() {\n\treturn makeSimplePropType('Function', PropTypes.func.isRequired, true);\n}\n\n\nexport function object() {\n\treturn makeSimplePropType('Object', PropTypes.object);\n}\n\nobject.isRequired = function() {\n\treturn makeSimplePropType('Object', PropTypes.object.isRequired, true);\n}\n\n\nexport function symbol() {\n\treturn makeSimplePropType('Symbol', PropTypes.symbol);\n}\n\nsymbol.isRequired = function() {\n\treturn makeSimplePropType('Symbol', PropTypes.symbol.isRequired, true);\n}\n\n\nexport function any() {\n\treturn makeSimplePropType('Any', PropTypes.any);\n}\n\nany.isRequired = function() {\n\treturn makeSimplePropType('Any', PropTypes.any.isRequired, true);\n}\n\n\nexport function node() {\n\treturn makeSimplePropType('Node', PropTypes.any);\n}\n\nnode.isRequired = function() {\n\treturn makeSimplePropType('Node', PropTypes.node.isRequired, true);\n}\n\n\nexport function element() {\n\treturn makeSimplePropType('Element', PropTypes.element);\n}\n\nelement.isRequired = function() {\n\treturn makeSimplePropType('Element', PropTypes.element, true);\n}\n\n\nexport function custom(validator) {\n    return makeSimplePropType('Custom', validator);\n}\n\n\nexport function shape(theShape) {\n\treturn makeShapeProptype(false, theShape);\n}\n\nshape.isRequired = function (theShape) {\n\treturn makeShapeProptype(true, theShape);\n}\n\n\nexport function instanceOf(theType, typeName) {\n\treturn makeInstanceOfProptype(false, theType, typeName);\n}\n\ninstanceOf.isRequired = function(theType, typeName) {\n\treturn makeInstanceOfProptype(true, theType, typeName);\n}\n\n\nexport function oneOf(theEnum) {\n\treturn makeOneOfProptype(false, theEnum);\n}\n\noneOf.isRequired = function(theEnum) {\n\treturn makeOneOfProptype(true, theEnum);\n}\n\n\nexport function oneOfType(theTypes) {\n\treturn makeOneOfTypeProptype(false, theTypes);\n}\n\noneOfType.isRequired = function (theTypes) {\n\treturn makeOneOfTypeProptype(true, theTypes);\n}\n\n\nexport function arrayOf(theType) {\n\treturn makeArrayOfProptype(false, theType);\n}\n\narrayOf.isRequired = function(theType) {\n\treturn makeArrayOfProptype(true, theType);\n}\n\n\nexport function objectOf(theType) {\n\treturn makeObjectOfProptype(false, theType);\n}\n\nobjectOf.isRequired = function(theType) {\n\treturn makeObjectOfProptype(true, theType);\n}"],"names":["getDocs","prop","type","displayName","required","description","default","makeSimplePropType","reactPT","mapObject","mapper","object","Object","keys","reduce","output","key","objectToArray","keyProp","valProp","map","mapToReactPT","getReactPT","mapToDefaults","mapToDocs","objectToArrayNameDocs","propsToDocs","props","mapToOneOfTypeDescription","shape","makeGetReactPT","theShape","PropTypes","isRequired","makeShapeProptype","theType","instanceOf","getTypeName","funcNameRegex","results","exec","constructor","toString","length","makeInstanceOfProptype","typeName","theEnum","oneOf","enumToName","item","join","trim","makeOneOfProptype","theTypes","getOneOfTypeDescription","oneOfType","typesToName","makeOneOfTypeProptype","getArrayOfDoc","arrayOf","rest","arrayOfType","typeToName","makeArrayOfProptype","getObjectOfDoc","objectOf","makeObjectOfProptype","docsToProps","docs","docsToDefaults","setComponentProps","documentation","component","propTypes","defaultProps","generateDocs","name","string","number","array","bool","func","symbol","any","node","element","custom","validator"],"mappings":"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"}