From 97900776bb3611877d126aa58743eb9b5b2a4be8 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Wed, 14 Dec 2011 13:28:51 +0100 Subject: [PATCH] util: add internal function _deprecationWarning() --- lib/os.js | 8 ++------ lib/sys.js | 11 ++--------- lib/util.js | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/lib/os.js b/lib/os.js index fa8ac01513..f226e3ecbf 100644 --- a/lib/os.js +++ b/lib/os.js @@ -37,12 +37,8 @@ exports.platform = function() { return process.platform; }; -var warnNetworkInterfaces = true; exports.getNetworkInterfaces = function() { - if (warnNetworkInterfaces) { - console.error("os.getNetworkInterfaces() is deprecated - use os.networkInterfaces()"); - console.trace(); - warnNetworkInterfaces = false; - } + require('util')._deprecationWarning('os', + 'os.getNetworkInterfaces() is deprecated - use os.networkInterfaces()'); return exports.networkInterfaces(); }; diff --git a/lib/sys.js b/lib/sys.js index d53a3dd95e..0039b89d20 100644 --- a/lib/sys.js +++ b/lib/sys.js @@ -21,15 +21,8 @@ var util = require('util'); -var sysWarning; -if (!sysWarning) { - sysWarning = 'The "sys" module is now called "util". ' + - 'It should have a similar interface.'; - if (process.env.NODE_DEBUG && process.env.NODE_DEBUG.indexOf('sys') != -1) - console.trace(sysWarning); - else - console.error(sysWarning); -} +util._deprecationWarning('sys', + 'The "sys" module is now called "util". It should have a similar interface.'); exports.print = util.print; exports.puts = util.puts; diff --git a/lib/util.js b/lib/util.js index b00da2de9d..cd4cc0e964 100644 --- a/lib/util.js +++ b/lib/util.js @@ -518,3 +518,19 @@ exports.inherits = function(ctor, superCtor) { } }); }; + +var deprecationWarnings; + +exports._deprecationWarning = function(moduleId, message) { + if (!deprecationWarnings) + deprecationWarnings = {}; + else if (message in deprecationWarnings) + return; + + deprecationWarnings[message] = true; + + if ((new RegExp('\\b' + moduleId + '\\b')).test(process.env.NODE_DEBUG)) + console.trace(message); + else + console.error(message); +};