UNPKG

@carbon/ibm-security

Version:

Carbon for Cloud & Cognitive IBM Security UI components

37 lines (35 loc) 1.37 kB
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;