use util.inspect to format objects and arrays printed to the console
This commit is contained in:
parent
ca8cc71bd0
commit
e5a47c8ce1
@ -3,8 +3,10 @@ var writeError = process.binding('stdio').writeError;
|
|||||||
// console object
|
// console object
|
||||||
var formatRegExp = /%[sdj]/g;
|
var formatRegExp = /%[sdj]/g;
|
||||||
function format(f) {
|
function format(f) {
|
||||||
|
var util = require('util');
|
||||||
|
|
||||||
if (typeof f !== 'string') {
|
if (typeof f !== 'string') {
|
||||||
var objects = [], util = require('util');
|
var objects = [];
|
||||||
for (var i = 0; i < arguments.length; i++) {
|
for (var i = 0; i < arguments.length; i++) {
|
||||||
objects.push(util.inspect(arguments[i]));
|
objects.push(util.inspect(arguments[i]));
|
||||||
}
|
}
|
||||||
@ -16,15 +18,19 @@ function format(f) {
|
|||||||
var args = arguments;
|
var args = arguments;
|
||||||
var str = String(f).replace(formatRegExp, function(x) {
|
var str = String(f).replace(formatRegExp, function(x) {
|
||||||
switch (x) {
|
switch (x) {
|
||||||
case '%s': return args[i++];
|
case '%s': return String(args[i++]);
|
||||||
case '%d': return +args[i++];
|
case '%d': return Number(args[i++]);
|
||||||
case '%j': return JSON.stringify(args[i++]);
|
case '%j': return JSON.stringify(args[i++]);
|
||||||
default:
|
default:
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
for (var len = args.length; i < len; ++i) {
|
for (var len = args.length, x = args[i]; i < len; x = args[++i]) {
|
||||||
str += ' ' + args[i];
|
if (x === null || typeof x !== 'object') {
|
||||||
|
str += ' ' + x;
|
||||||
|
} else {
|
||||||
|
str += ' ' + util.inspect(x);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user