A lightweight helper library to create custom React prop types.
npm install create-prop-types --save-dev
// ./prop-types/Iterable.js
import createPropType from 'create-prop-types';
import { Iterable } from 'immutable';
const IterablePropType = createPropType({
predicate: propValue => Iterable.isIterable(propValue)
});
export default IterablePropType;
import Iterable from './prop-types/Iterable';
export default class MyComponent extends React.Component {
static propTypes = {
propA: Iterable,
propB: Iterable.isRequired
}
}
A predicate function to satisfy in order to consider the prop value as valid.
import createPropType from 'create-prop-types';
const CustomPropType = createPropType({
predicate: propValue => (propValue !== 'foo')
});
export default CustomPropType;
Optional custom warning messages.
type Warnings = {
missing?: WarningResolver,
invalid?: WarningResolver
}
type WarningResolver = (propName: string, propValue: any, componentName: string) => string
import createPropType from 'create-prop-types';
const CustomPropType = createPropType({
predicate: propValue => ...,
warnings: {
missing: (propName, propValue, componentName) => {
return `Required prop "${propName}" is missing in "${componentName}" component.`;
}
}
});
export default CustomPropType;
This project is licensed under MIT License. See the license file for more details.