@xo-union/tk-component-header-nav
Version:
31 lines (29 loc) • 1.62 kB
JavaScript
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/array/is-array"));
var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/set"));
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/json/stringify"));
const isRequiredAndOneOfOrNull = expectedValues => {
if (!(0, _isArray.default)(expectedValues)) {
return () => new Error(`Invalid argument supplied to oneOfOrNull, expected an instance of array.`);
}
return (props, propName, componentName) => {
if (!(propName in props)) {
return new Error(`Invalid prop \`${propName}\` supplied to \`${componentName}\`.` + ` \`${propName}\` must be defined. If you do not want to set ` + `\`${propName}\` it can be set to \`null\` to disable this warning.`);
}
const validValues = new _set.default([...expectedValues, null]);
const propValue = props[propName]; // eslint-disable-line react/destructuring-assignment
if (!validValues.has(propValue)) {
const valuesString = (0, _stringify.default)([...validValues]);
return new Error(`Invalid prop \`${propName}\` of value \`${propValue}\` ` + `supplied to \`${componentName}\`, expected one of ${valuesString}.`);
}
return null;
};
};
var _default = isRequiredAndOneOfOrNull;
exports.default = _default;
;