{"_id":"react-docgen-external-proptypes-handler","_rev":"2832350","name":"react-docgen-external-proptypes-handler","description":"evaluate variables from external files for react-docgen","dist-tags":{"latest":"2.0.0"},"maintainers":[{"name":"siddharthkp","email":""}],"time":{"modified":"2022-09-06T15:16:20.000Z","created":"2018-05-11T07:47:25.245Z","2.0.0":"2019-10-16T21:23:15.985Z","1.0.3":"2019-06-06T11:18:23.741Z","1.0.2":"2018-12-14T02:43:58.101Z","1.0.1":"2018-12-13T01:15:31.850Z","1.0.0":"2018-05-11T07:47:25.245Z"},"users":{},"author":{"name":"siddharthkp"},"repository":{"type":"git","url":"git+https://github.com/siddharthkp/react-docgen-external-proptypes-handler.git"},"versions":{"2.0.0":{"name":"react-docgen-external-proptypes-handler","version":"2.0.0","description":"evaluate variables from external files for react-docgen","main":"index.js","repository":{"type":"git","url":"git+https://github.com/siddharthkp/react-docgen-external-proptypes-handler.git"},"engines":{"node":">= 6.2.0"},"keywords":[],"author":{"name":"siddharthkp"},"license":"MIT","bugs":{"url":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler/issues"},"homepage":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler#readme","devDependencies":{"eslint":"^6.5.1","eslint-config-prettier":"^6.4.0","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","prettier":"^1.18.2","react-docgen":"^4.1.1"},"dependencies":{"recast":"^0.17.3"},"peerDependencies":{"react-docgen":">=3.0.0-0 <=5.0.0"},"gitHead":"3cf31d075d8f3db5d15df01f9ed8c462323c25a8","_id":"react-docgen-external-proptypes-handler@2.0.0","_nodeVersion":"12.11.1","_npmVersion":"6.11.3","dist":{"shasum":"6cc8de19478dec0bb8b9f70e2af0cdbbbc1ff2dc","size":6246,"noattachment":false,"key":"/react-docgen-external-proptypes-handler/-/react-docgen-external-proptypes-handler-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-docgen-external-proptypes-handler/download/react-docgen-external-proptypes-handler-2.0.0.tgz"},"maintainers":[{"name":"siddharthkp","email":""}],"_npmUser":{"name":"danez","email":"daniel@tschinder.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-docgen-external-proptypes-handler_2.0.0_1571260995887_0.002306260378173608"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2021-12-20T09:46:12.436Z","publish_time":1571260995985,"_cnpm_publish_time":1571260995985},"1.0.3":{"name":"react-docgen-external-proptypes-handler","version":"1.0.3","description":"evaluate variables from external files for react-docgen","main":"index.js","repository":{"type":"git","url":"git+https://github.com/siddharthkp/react-docgen-external-proptypes-handler.git"},"keywords":[],"author":{"name":"siddharthkp"},"license":"MIT","bugs":{"url":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler/issues"},"homepage":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler#readme","gitHead":"39156864ab1242e2cdcb1e0340d6b3bb575b756e","_id":"react-docgen-external-proptypes-handler@1.0.3","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"shasum":"53ce11d4ec86c67596558da0464f0ec15b6e0d64","size":5609,"noattachment":false,"key":"/react-docgen-external-proptypes-handler/-/react-docgen-external-proptypes-handler-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-docgen-external-proptypes-handler/download/react-docgen-external-proptypes-handler-1.0.3.tgz"},"maintainers":[{"name":"siddharthkp","email":""}],"_npmUser":{"name":"siddharthkp","email":"siddharth.kshetrapal@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-docgen-external-proptypes-handler_1.0.3_1559819903529_0.4795168809197323"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2021-12-20T09:46:11.553Z","publish_time":1559819903741,"_cnpm_publish_time":1559819903741},"1.0.2":{"name":"react-docgen-external-proptypes-handler","version":"1.0.2","description":"evaluate variables from external files for react-docgen","main":"index.js","repository":{"type":"git","url":"git+https://github.com/siddharthkp/react-docgen-external-proptypes-handler.git"},"keywords":[],"author":{"name":"siddharthkp"},"license":"MIT","bugs":{"url":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler/issues"},"homepage":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler#readme","gitHead":"55b6e06394991cef7e536215d7d56a93ecc43965","_id":"react-docgen-external-proptypes-handler@1.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.14.0","_npmUser":{"name":"danez","email":"daniel@tschinder.de"},"dist":{"shasum":"457d3e82a6899695482f4912036cc940577ab0aa","size":5462,"noattachment":false,"key":"/react-docgen-external-proptypes-handler/-/react-docgen-external-proptypes-handler-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-docgen-external-proptypes-handler/download/react-docgen-external-proptypes-handler-1.0.2.tgz"},"maintainers":[{"name":"siddharthkp","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-docgen-external-proptypes-handler_1.0.2_1544755437939_0.4041516828948635"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2021-12-20T09:46:11.459Z","publish_time":1544755438101,"_cnpm_publish_time":1544755438101},"1.0.1":{"name":"react-docgen-external-proptypes-handler","version":"1.0.1","description":"evaluate variables from external files for react-docgen","main":"index.js","repository":{"type":"git","url":"git+https://github.com/siddharthkp/react-docgen-external-proptypes-handler.git"},"keywords":[],"author":{"name":"siddharthkp"},"license":"MIT","bugs":{"url":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler/issues"},"homepage":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler#readme","gitHead":"7800d5785b6bb0372a6b883895a8baa2627d5614","_id":"react-docgen-external-proptypes-handler@1.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.14.0","_npmUser":{"name":"danez","email":"daniel@tschinder.de"},"dist":{"shasum":"1d7c1cc0200221fe50480fef80ad8c1bfa506e28","size":5430,"noattachment":false,"key":"/react-docgen-external-proptypes-handler/-/react-docgen-external-proptypes-handler-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-docgen-external-proptypes-handler/download/react-docgen-external-proptypes-handler-1.0.1.tgz"},"maintainers":[{"name":"siddharthkp","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-docgen-external-proptypes-handler_1.0.1_1544663731682_0.280872354876903"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2021-12-20T09:46:10.604Z","publish_time":1544663731850,"_cnpm_publish_time":1544663731850},"1.0.0":{"name":"react-docgen-external-proptypes-handler","version":"1.0.0","description":"evaluate variables from external files for react-docgen","main":"index.js","repository":{"type":"git","url":"git+https://github.com/siddharthkp/react-docgen-external-proptypes-handler.git"},"keywords":[],"author":{"name":"siddharthkp"},"license":"MIT","bugs":{"url":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler/issues"},"homepage":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler#readme","gitHead":"a8c49618bb8a0ffc18f77041cfe7764fac7043c7","_id":"react-docgen-external-proptypes-handler@1.0.0","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"siddharthkp","email":"siddharth.kshetrapal@gmail.com"},"dist":{"shasum":"e92ac8ef4b431d2611ca5219f56f1c846674498b","size":5134,"noattachment":false,"key":"/react-docgen-external-proptypes-handler/-/react-docgen-external-proptypes-handler-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-docgen-external-proptypes-handler/download/react-docgen-external-proptypes-handler-1.0.0.tgz"},"maintainers":[{"name":"siddharthkp","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-docgen-external-proptypes-handler_1.0.0_1526024845176_0.6074970276654623"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2021-12-20T09:46:09.723Z","publish_time":1526024845245,"_cnpm_publish_time":1526024845245}},"readme":"# react-docgen-external-proptypes-handler\n > Evaluate variables from external files for react-docgen</b>\n \n**This handler does not work with react-docgen >= 5.0.0-beta.1 (yet). react-docgen as of this version will most probably include this functionality by default**\n\n#### credit\n\nAll credit goes to [Chandrasekhar Pasupuleti](https://github.com/pasupuletics) for sharing the implementation and [Daniel Tschinder](https://github.com/danez) for maintaining it.\n\n#### problem\n\n`react-docgen` doesn't allow you to use variables from other files to use in `propTypes`\n\nExample:\n\n```js\nimport iconNames from './icon-names.js'\n\nIcon.propTypes = {\n  /** Icon name */\n  name: PropTypes.oneOf(iconNames).isRequired\n}\n```\n\nThis doesn't work because it's parsed as a string and not an array\n\n```json\n\"props\": {\n  \"name\": {\n    \"type\": {\n      \"name\": \"enum\",\n      \"computed\": true,\n      \"value\": \"iconNames\"\n    },\n    \"required\": true,\n    \"description\": \"Icon name\"\n  },\n}\n```\n\n#### install\n\n```\nnpm i react-docgen-external-proptypes-handler --save-dev\n```\n\n#### convention\n\nIf you are importing a variable from an external file to use in `propTypes`, like in the example below, you need to follow a very specific convention to make it work.\n\nComponent code:\n\n```jsx\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\n/* importing variable iconNames from .js file (js, jsx are supported, json is not) */\nimport iconNames from './icon-names.js'\n\nconst Icon = props => {\n  /*implementation logic*/\n}\n\nIcon.propTypes = {\n  /** Icon name */\n  name: PropTypes.oneOf(iconNames).isRequired\n}\n\nexport default Icon\n```\n\nIn the imported file, make sure the same variable is exported.\n\n```js\nconst iconNames = ['copy', 'trash', 'etc']\n/* same variable name */\nexport default iconNames\n```\n\n&nbsp;\n\n#### Usage\n\n```js\nconst docgen = require('react-docgen')\nconst externalProptypesHandler = require('./react-docgen-external-proptypes-handler')\n\nlet metadata = files.map(path => {\n  /* append display name handler to handlers list */\n  const handlers = docgen.defaultHandlers.concat(externalProptypesHandler(path))\n\n  /* read file to get source code */\n  const code = fs.readFileSync(path, 'utf8')\n\n  /* parse the component code to get metadata */\n  const data = docgen.parse(code, null, handlers)\n\n  return data\n})\n```\n\n##### Usage with react-styleguidist\n\nEnable `handlers` property in styleguidist config(`styleguidist.config.js`)\n```js\nmodule.export = {\n  handlers: componentPath =>\n    require('react-docgen').defaultHandlers.concat(\n        require('react-docgen-external-proptypes-handler')(componentPath),\n        require('react-docgen-displayname-handler').createDisplayNameHandler(componentPath)\n      )\n}\n```\n\n&nbsp;\n\n#### like it?\n\n:star: this repo\n\n#### license\n\nMIT © [siddharthkp](https://github.com/siddharthkp)\n","_attachments":{},"homepage":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler#readme","bugs":{"url":"https://github.com/siddharthkp/react-docgen-external-proptypes-handler/issues"},"license":"MIT"}