-
Notifications
You must be signed in to change notification settings - Fork 0
/
debug.js
48 lines (35 loc) · 1.26 KB
/
debug.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Number.prototype.leadingZero = function leadingZero() {
return ( this < 10 ? '0' + this : '' + this );
};
function Debug( module ) {
this.module = module.charAt(0).toUpperCase() + module.slice(1);
this.print = function print() {
if( false ) {
console.log.apply( console, arguments );
}
};
}
(function(Debug) {
var getTime = function getTime() {
var date = new Date();
return '[\x1B[90m' + date.getHours().leadingZero() + ':' + date.getMinutes().leadingZero() + ':' + date.getSeconds().leadingZero() + '\x1B[39m]';
};
var getPrefix = function getPrefix( type, module ) {
var codes = [
32, ' Log '
, 33, 'Warning'
, 31, ' Error '
];
return getTime() + ' - [\x1B[' + codes[type] + 'm' + codes[type + 1] + '\x1B[39m] [' + module + ']';
};
Debug.prototype.log = function log() {
this.print.apply( this, [getPrefix(0, this.module)].concat( [].slice.call( arguments ) ) );
};
Debug.prototype.warn = function warn() {
this.print.apply( this, [getPrefix(2, this.module)].concat( [].slice.call( arguments ) ) );
};
Debug.prototype.error = function error() {
this.print.apply( this, [getPrefix(4, this.module)].concat( [].slice.call( arguments ) ) );
};
})(Debug);
module.exports = Debug;