From 874260b40fefc03aec7638a736b004b3ca0c23f3 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Fri, 29 Jul 2011 17:26:45 +0200 Subject: util: add sprintf-like format() function Fixes #1407. --- lib/console.js | 44 ++++---------------------------------------- 1 file changed, 4 insertions(+), 40 deletions(-) (limited to 'lib/console.js') diff --git a/lib/console.js b/lib/console.js index 54a4d811fe..873d27c4e8 100644 --- a/lib/console.js +++ b/lib/console.js @@ -20,45 +20,10 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. var writeError = process.binding('stdio').writeError; - -// console object -var formatRegExp = /%[sdj]/g; -function format(f) { - var util = require('util'); - - if (typeof f !== 'string') { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(util.inspect(arguments[i])); - } - return objects.join(' '); - } - - - var i = 1; - var args = arguments; - var str = String(f).replace(formatRegExp, function(x) { - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': return JSON.stringify(args[i++]); - default: - return x; - } - }); - for (var len = args.length, x = args[i]; i < len; x = args[++i]) { - if (x === null || typeof x !== 'object') { - str += ' ' + x; - } else { - str += ' ' + util.inspect(x); - } - } - return str; -} - +var util = require('util'); exports.log = function() { - process.stdout.write(format.apply(this, arguments) + '\n'); + process.stdout.write(util.format.apply(this, arguments) + '\n'); }; @@ -66,7 +31,7 @@ exports.info = exports.log; exports.warn = function() { - writeError(format.apply(this, arguments) + '\n'); + writeError(util.format.apply(this, arguments) + '\n'); }; @@ -74,7 +39,6 @@ exports.error = exports.warn; exports.dir = function(object) { - var util = require('util'); process.stdout.write(util.inspect(object) + '\n'); }; @@ -105,6 +69,6 @@ exports.trace = function(label) { exports.assert = function(expression) { if (!expression) { var arr = Array.prototype.slice.call(arguments, 1); - require('assert').ok(false, format.apply(this, arr)); + require('assert').ok(false, util.format.apply(this, arr)); } }; -- cgit v1.2.1