diff options
Diffstat (limited to 'node_modules/@sinonjs/commons/lib/deprecated.js')
-rw-r--r-- | node_modules/@sinonjs/commons/lib/deprecated.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/node_modules/@sinonjs/commons/lib/deprecated.js b/node_modules/@sinonjs/commons/lib/deprecated.js new file mode 100644 index 0000000..ad68cc9 --- /dev/null +++ b/node_modules/@sinonjs/commons/lib/deprecated.js @@ -0,0 +1,58 @@ +/* eslint-disable no-console */ +"use strict"; + +/** + * Returns a function that will invoke the supplied function and print a + * deprecation warning to the console each time it is called. + * + * @param {Function} func + * @param {string} msg + * @returns {Function} + */ +exports.wrap = function(func, msg) { + var wrapped = function() { + exports.printWarning(msg); + return func.apply(this, arguments); + }; + if (func.prototype) { + wrapped.prototype = func.prototype; + } + return wrapped; +}; + +/** + * Returns a string which can be supplied to `wrap()` to notify the user that a + * particular part of the sinon API has been deprecated. + * + * @param {string} packageName + * @param {string} funcName + * @returns {string} + */ +exports.defaultMsg = function(packageName, funcName) { + return ( + packageName + + "." + + funcName + + " is deprecated and will be removed from the public API in a future version of " + + packageName + + "." + ); +}; + +/** + * Prints a warning on the console, when it exists + * + * @param {string} msg + * @returns {undefined} + */ +exports.printWarning = function(msg) { + /* istanbul ignore next */ + if (typeof process === "object" && process.emitWarning) { + // Emit Warnings in Node + process.emitWarning(msg); + } else if (console.info) { + console.info(msg); + } else { + console.log(msg); + } +}; |