You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.4 KiB
58 lines
1.4 KiB
/* 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); |
|
} |
|
};
|
|
|