UNPKG

@xo-union/tk-component-header-nav

Version:
31 lines (29 loc) 1.62 kB
"use strict"; 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;