31 lines
861 B
JavaScript
Executable File
31 lines
861 B
JavaScript
Executable File
/* monkey-patch console.log to prefix with file/line-number */
|
|
if (process.env.LOG_LINE) {
|
|
let cwd = process.cwd(),
|
|
cwdRe = new RegExp('^[^/]*' + cwd.replace('/', '\\/') + '\/([^:]*:[0-9]*).*$');
|
|
[ 'log', 'warn', 'error' ].forEach(function(method) {
|
|
console[method] = (function () {
|
|
let orig = console[method];
|
|
return function () {
|
|
function getErrorObject() {
|
|
try {
|
|
throw Error('');
|
|
} catch (err) {
|
|
return err;
|
|
}
|
|
}
|
|
|
|
let err = getErrorObject(),
|
|
caller_line = err.stack.split('\n')[3],
|
|
args = [caller_line.replace(cwdRe, '$1 -')];
|
|
|
|
/* arguments.unshift() doesn't exist... */
|
|
for (var i = 0; i < arguments.length; i++) {
|
|
args.push(arguments[i]);
|
|
}
|
|
|
|
orig.apply(this, args);
|
|
};
|
|
})();
|
|
});
|
|
}
|