carbon-react
Version:
A library of reusable React components and an interface for easily building user interfaces based on Flux.
43 lines (32 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var PropTypesHelper = {
inValidRange: function inValidRange(props, propName, componentName, min, max) {
if (props[propName]) {
var value = props[propName];
if (isTypeOfNumberOrString(value)) {
if (!valueInRange(value, min, max)) {
return throwError(propName, componentName, 'must be between ' + min + ' and ' + max);
}
} else {
return throwError(propName, componentName, 'must be a String or Integer');
}
}
return null;
}
};
exports.default = PropTypesHelper;
var valueInRange = function valueInRange(value, min, max) {
return value >= min && value <= max;
};
var throwError = function throwError(propName, componentName, error) {
return new Error(buildErrorString(propName, componentName, error));
};
var buildErrorString = function buildErrorString(propName, componentName, error) {
return propName + ' in ' + componentName + ' ' + error;
};
var isTypeOfNumberOrString = function isTypeOfNumberOrString(value) {
return typeof value === 'string' || typeof value === 'number';
};