-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdebug.js
More file actions
80 lines (66 loc) · 1.92 KB
/
debug.js
File metadata and controls
80 lines (66 loc) · 1.92 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// if (!PRISM_DEBUGGING) return;
//https://coderwall.com/p/yphywg/printing-colorful-text-in-terminal-when-run-node-js-script
var FgGreen = '\x1b[32m';
var FgRed = '\x1b[31m';
var FgWhite = "\x1b[37m";
var reset = '\x1b[0m';
Object.defineProperty(global, '__stack', {
get: function(){
var orig = Error.prepareStackTrace;
Error.prepareStackTrace = function(_, stack){ return stack; };
var err = new Error;
Error.captureStackTrace(err, arguments.callee);
var stack = err.stack;
Error.prepareStackTrace = orig;
return stack;
}
});
Object.defineProperty(global, '__lineNumber', {
get: function(){
return __stack[2].getLineNumber();
}
});
Object.defineProperty(global, '__fileName', {
get: function(){
var path = __stack[2].getFileName();
var pathArray = path.split(/[/\\]/);
return pathArray[pathArray.length - 1];
}
});
Object.defineProperty(global, '__functionName', {
get: function(){
var functionName = __stack[2].getFunctionName();
return (functionName ? '(' + functionName + ')' : null );
}
});
/***************/
global.trace = function() {
var msg = reset + FgGreen +
__fileName + ':' +
__lineNumber +
( __functionName ? ' ' + __functionName: '' );
for (var i in arguments) {
msg += FgGreen + ' | ' + reset;
if (typeof arguments[i] === 'object') {
msg += JSON.stringify(arguments[i]);
} else {
msg += arguments[i];
}
}
console.log(msg);
}
global.red = function () {
var msg = reset + FgRed +
__fileName + ':' +
__lineNumber +
( __functionName ? ' ' + __functionName: '' );
for (var i in arguments) {
msg += FgRed + ' | ' + reset;
if (typeof arguments[i] === 'object') {
msg += JSON.stringify(arguments[i]);
} else {
msg += arguments[i];
}
}
console.log(msg);
}