UNPKG

1.52 kBJavaScriptView Raw
1'use strict';
2
3var log = console.log;
4var error = console.error;
5var inspect = require('util').inspect;
6var extend = require('util')._extend;
7var map = Array.prototype.map;
8var config = { depth: 1, colors: true };
9
10function setConfig(newConfig) {
11 extend(config, newConfig);
12 return betterLog;
13}
14
15function beautifyArgs(maybeFormat) {
16 var formats = [];
17 var args = new Array(arguments.length);
18 var i = 0;
19 if (typeof maybeFormat === 'string' && args.length > 1) {
20 formats.push('%s');
21 args[i++] = maybeFormat.replace(/%[sdj]/g, function (format) {
22 formats.push(format);
23 return '%s';
24 });
25 }
26 while (i < args.length) {
27 var arg = arguments[i];
28 var format = i < formats.length ? formats[i] : '%?';
29 if (format === '%s' || format === '%?' && typeof arg === 'string') {
30 arg = String(arg);
31 } else {
32 if (format === '%d') {
33 arg = Number(arg);
34 }
35 arg = inspect(arg, config);
36 }
37 args[i++] = arg;
38 }
39 return args;
40}
41
42function betterLog() {
43 return log.apply(console, beautifyArgs.apply(undefined, arguments));
44}
45
46function betterError() {
47 return error.apply(console, beautifyArgs.apply(undefined, arguments));
48}
49
50betterLog.error = betterError;
51
52betterLog.setConfig = setConfig;
53
54betterLog.install = function (newConfig) {
55 setConfig(newConfig);
56 console.error = console.warn = betterError;
57 return console.log = console.info = betterLog;
58};
59
60betterLog.uninstall = function () {
61 return console.log = log;
62};
63
64module.exports = betterLog;
\No newline at end of file