@carbon/ibm-security
Version:
Carbon for Cloud & Cognitive IBM Security UI components
37 lines (35 loc) • 1.37 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
/**
* @file Custom `prop-types` validation.
* @copyright IBM Security 2018
*/
import { checkPropTypes } from 'prop-types';
import deprecate from '../deprecate';
/**
* 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 _defineProperty({}, "".concat(deprecatedPropName), propValue);
};
var prop = props[deprecatedPropName];
if (prop) {
deprecate({
actual: deprecatedPropName,
componentName: componentName,
description: 'prop type',
expected: replacementPropName
});
}
checkPropTypes(createPropObject(propValidation), createPropObject(prop), deprecatedPropName, componentName);
};
};
export default deprecatedProp;