@carbon/ibm-security
Version:
Carbon for Cloud & Cognitive IBM Security UI components
43 lines (41 loc) • 1.68 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _propTypes = require("prop-types");
var _deprecate = _interopRequireDefault(require("../deprecate"));
/**
* @file Custom `prop-types` validation.
* @copyright IBM Security 2018
*/
/**
* Throws a warning for deprecated props and validates that prop.
* @param {string} replacementPropName The suggested replacement prop name.
* @param {PropTypes.<*>} propValidation The prop validation to check against.
*/
var deprecatedProp = function deprecatedProp(replacementPropName, propValidation) {
return function (props, deprecatedPropName, componentName) {
/**
* Creates a prop object to validate against.
* @param {string|PropTypes.<*>} propValue The prop value to add to the object.
* @returns {Record<string, any>} The prop object to validate against.
*/
var createPropObject = function createPropObject(propValue) {
return (0, _defineProperty2.default)({}, "".concat(deprecatedPropName), propValue);
};
var prop = props[deprecatedPropName];
if (prop) {
(0, _deprecate.default)({
actual: deprecatedPropName,
componentName: componentName,
description: 'prop type',
expected: replacementPropName
});
}
(0, _propTypes.checkPropTypes)(createPropObject(propValidation), createPropObject(prop), deprecatedPropName, componentName);
};
};
var _default = exports.default = deprecatedProp;