react-style-proptype
Version:
validates style objects by ensuring they only have valid keys
32 lines (27 loc) • 894 B
JavaScript
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
]);