diff options
Diffstat (limited to 'node_modules/react/lib/deprecated.js')
-rw-r--r-- | node_modules/react/lib/deprecated.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/node_modules/react/lib/deprecated.js b/node_modules/react/lib/deprecated.js new file mode 100644 index 000000000..aa0b49fce --- /dev/null +++ b/node_modules/react/lib/deprecated.js @@ -0,0 +1,56 @@ +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * + */ + +'use strict'; + +var _assign = require('object-assign'); + +var warning = require('fbjs/lib/warning'); + +/** + * This will log a single deprecation notice per function and forward the call + * on to the new API. + * + * @param {string} fnName The name of the function + * @param {string} newModule The module that fn will exist in + * @param {string} newPackage The module that fn will exist in + * @param {*} ctx The context this forwarded call should run in + * @param {function} fn The function to forward on to + * @return {function} The function that will warn once and then call fn + */ +function deprecated(fnName, newModule, newPackage, ctx, fn) { + var warned = false; + if (process.env.NODE_ENV !== 'production') { + var newFn = function () { + process.env.NODE_ENV !== 'production' ? warning(warned, + /* eslint-disable no-useless-concat */ + // Require examples in this string must be split to prevent React's + // build tools from mistaking them for real requires. + // Otherwise the build tools will attempt to build a '%s' module. + 'React.%s is deprecated. Please use %s.%s from require' + '(\'%s\') ' + 'instead.', fnName, newModule, fnName, newPackage) : void 0; + /* eslint-enable no-useless-concat */ + warned = true; + return fn.apply(ctx, arguments); + }; + // We need to make sure all properties of the original fn are copied over. + // In particular, this is needed to support PropTypes + _assign(newFn, fn); + + // Flow is not smart enough to figure out that newFn is of the same type as + // fn. Since we don't want to lose out the type of the function, casting + // to any and force flow to use T. + return newFn; + } + + return fn; +} + +module.exports = deprecated;
\ No newline at end of file |