|
|
|
'use strict';
|
|
|
|
|
|
|
|
const prefix = '(node) ';
|
|
|
|
|
|
|
|
// All the internal deprecations have to use this function only, as this will
|
|
|
|
// prepend the prefix to the actual message.
|
|
|
|
exports.deprecate = function(fn, msg) {
|
|
|
|
return exports._deprecate(fn, `${prefix}${msg}`);
|
|
|
|
};
|
|
|
|
|
|
|
|
// All the internal deprecations have to use this function only, as this will
|
|
|
|
// prepend the prefix to the actual message.
|
|
|
|
exports.printDeprecationMessage = function(msg, warned) {
|
|
|
|
return exports._printDeprecationMessage(`${prefix}${msg}`, warned);
|
|
|
|
};
|
|
|
|
|
|
|
|
exports._printDeprecationMessage = function(msg, warned) {
|
|
|
|
if (process.noDeprecation)
|
|
|
|
return true;
|
|
|
|
|
|
|
|
if (warned)
|
|
|
|
return warned;
|
|
|
|
|
|
|
|
if (process.throwDeprecation)
|
|
|
|
throw new Error(msg);
|
|
|
|
else if (process.traceDeprecation)
|
|
|
|
console.trace(msg.startsWith(prefix) ? msg.replace(prefix, '') : msg);
|
|
|
|
else
|
|
|
|
console.error(msg);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
};
|
|
|
|
|
|
|
|
// Mark that a method should not be used.
|
|
|
|
// Returns a modified function which warns once by default.
|
|
|
|
// If --no-deprecation is set, then it is a no-op.
|
|
|
|
exports._deprecate = function(fn, msg) {
|
|
|
|
// Allow for deprecating things in the process of starting up.
|
|
|
|
if (global.process === undefined) {
|
|
|
|
return function() {
|
|
|
|
return exports._deprecate(fn, msg).apply(this, arguments);
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
if (process.noDeprecation === true) {
|
|
|
|
return fn;
|
|
|
|
}
|
|
|
|
|
|
|
|
var warned = false;
|
|
|
|
function deprecated() {
|
|
|
|
warned = exports._printDeprecationMessage(msg, warned);
|
|
|
|
return fn.apply(this, arguments);
|
|
|
|
}
|
|
|
|
|
|
|
|
return deprecated;
|
|
|
|
};
|