whisky/monkey.js
James Ketrenos 33131716ce Initial revision
Signed-off-by: James Ketrenos <james_eikona@ketrenos.com>
2021-04-26 17:55:27 -07:00

30 lines
760 B
JavaScript

/* monkey-patch console.log to prefix with file/line-number */
function lineLogger(logFn) {
let cwd = process.cwd(),
cwdRe = new RegExp("^[^/]*" + cwd.replace("/", "\\/") + "\/([^:]*:[0-9]*).*$");
function getErrorObject() {
try {
throw Error();
} catch (err) {
return err;
}
}
let err = getErrorObject(),
caller_line = err.stack.split("\n")[4],
args = [caller_line.replace(cwdRe, "$1 -")];
/* arguments.unshift() doesn't exist... */
for (var i = 1; i < arguments.length; i++) {
args.push(arguments[i]);
}
logFn.apply(this, args);
}
console.log = lineLogger.bind(console, console.log);
console.warn = lineLogger.bind(console, console.warn);
console.error = lineLogger.bind(console, console.error);