@luomus/parse-prop-types
v0.3.0
Published
Parses React prop-types into a readable object
Downloads
40
Readme
parse-prop-types
Parses React prop-types
into a readable object at runtime.
Install
$ npm install --save parse-prop-types
Usage
import React from 'react'
import PropTypes from 'prop-types'
import parsePropTypes from 'parse-prop-types'
const MyComponent = ({ name, show }) => (
show ? <div>{name}</div> : null
)
MyComponent.propTypes = {
name: PropTypes.string,
show: PropTypes.oneOfType([PropTypes.bool, propTypes.string]).isRequired,
}
MyComponent.defaultProps = {
name: 'Haz',
}
parsePropTypes(MyComponent)
The returned object is compatible with react-docgen
:
{
name: {
type: {
name: 'string',
},
required: false,
defaultValue: {
value: 'Haz',
},
},
show: {
type: {
name: 'oneOfType',
value: [
{ name: 'bool' },
{ name: 'string' },
],
},
required: true,
},
}
IMPORTANT: To avoid issues reading any component's propTypes, it is recommendable importing this package before defining your components' propTypes or before import any third-party component. Import this package in your entry point file could be a great option.
// index.js (entry point file)
import "parse-prop-types";
Why not react-docgen
?
react-docgen
reads file contents in order to find prop types definitions. It has some limitations, such as not allowing computed prop types and, in several situations, not being able to parse file contents correctly.
parse-prop-types
, on the other hand, doesn't deal with file contents. Instead, it parses prop types at runtime by receiving the component object itself.
API
Table of Contents
parsePropTypes
Parameters
$0
any$0.propTypes
(optional, default{}
)$0.defaultProps
(optional, default{}
)
Returns Object
License
MIT © Diego Haz