From 628845b816262ddcf11d08815fb39a8d3d2bc077 Mon Sep 17 00:00:00 2001 From: Vladimir Kurchatkin Date: Thu, 28 May 2015 17:01:56 +0300 Subject: [PATCH] util: introduce `printDeprecationMessage` function `printDeprecationMessage` is used to deprecate modules and execution branches. PR-URL: https://github.com/nodejs/io.js/pull/1822 Reviewed-By: Ben Noordhuis --- lib/buffer.js | 12 ++---------- lib/internal/util.js | 18 ++++++++++++++++++ lib/sys.js | 9 +++------ lib/util.js | 12 ++---------- node.gyp | 1 + 5 files changed, 26 insertions(+), 26 deletions(-) create mode 100644 lib/internal/util.js diff --git a/lib/buffer.js b/lib/buffer.js index 1b9c68465d6..ccd899da5f3 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -3,6 +3,7 @@ const binding = process.binding('buffer'); const smalloc = process.binding('smalloc'); const util = require('util'); +const internalUtil = require('internal/util'); const alloc = smalloc.alloc; const truncate = smalloc.truncate; const sliceOnto = smalloc.sliceOnto; @@ -504,16 +505,7 @@ Buffer.prototype.write = function(string, offset, length, encoding) { // XXX legacy write(string, encoding, offset, length) - remove in v0.13 } else { - if (!writeWarned) { - if (process.throwDeprecation) - throw new Error(writeMsg); - else if (process.traceDeprecation) - console.trace(writeMsg); - else - console.error(writeMsg); - writeWarned = true; - } - + writeWarned = internalUtil.printDeprecationMessage(writeMsg, writeWarned); var swap = encoding; encoding = offset; offset = length >>> 0; diff --git a/lib/internal/util.js b/lib/internal/util.js new file mode 100644 index 00000000000..76576331adb --- /dev/null +++ b/lib/internal/util.js @@ -0,0 +1,18 @@ +'use strict'; + +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); + else + console.error(msg); + + return true; +}; diff --git a/lib/sys.js b/lib/sys.js index 74143b5c198..a34ea0b899f 100644 --- a/lib/sys.js +++ b/lib/sys.js @@ -1,13 +1,10 @@ 'use strict'; -const util = require('util'); +const util = require('internal/util'); // the sys module was renamed to 'util'. // this shim remains to keep old programs working. // sys is deprecated and shouldn't be used -const setExports = util.deprecate(function() { - module.exports = util; -}, 'sys is deprecated. Use util instead.'); - -setExports(); +module.exports = require('util'); +util.printDeprecationMessage('sys is deprecated. Use util instead.'); diff --git a/lib/util.js b/lib/util.js index 401d55bbe82..c4aea9d5889 100644 --- a/lib/util.js +++ b/lib/util.js @@ -2,6 +2,7 @@ const uv = process.binding('uv'); const Debug = require('vm').runInDebugContext('Debug'); +const internalUtil = require('internal/util'); const formatRegExp = /%[sdj%]/g; exports.format = function(f) { @@ -63,16 +64,7 @@ exports.deprecate = function(fn, msg) { var warned = false; function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } + warned = internalUtil.printDeprecationMessage(msg, warned); return fn.apply(this, arguments); } diff --git a/node.gyp b/node.gyp index de0e47ec2e4..cbc536d7307 100644 --- a/node.gyp +++ b/node.gyp @@ -75,6 +75,7 @@ 'lib/internal/smalloc.js', 'lib/internal/socket_list.js', 'lib/internal/repl.js', + 'lib/internal/util.js', ], },