12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /* 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);
- }
- };
|