UNPKG

react-style-proptype

Version:

validates style objects by ensuring they only have valid keys

32 lines (27 loc) 894 B
var properties = require('./css-properties.js'); var PropTypes = require('prop-types'); module.exports = function(props, propName, componentName) { var styles = props[propName]; if (!styles) { return; } var failures = []; Object.keys(styles).forEach(function(styleKey){ if (properties.indexOf(styleKey) === -1) { failures.push(styleKey); } }); if (failures.length) { throw new Error('Prop ' + propName + ' passed to ' + componentName + '. Has invalid keys ' + failures.join(', ')); } }; module.exports.isRequired = function(props, propName, componentName) { if (!props[propName]) { throw new Error('Prop ' + propName + ' passed to ' + componentName + ' is required'); } return module.exports(props, propName, componentName); }; module.exports.supportingArrays = PropTypes.oneOfType([ PropTypes.arrayOf(module.exports), module.exports ]);