46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
|
const logger = require('../logger.js');
|
|
const object = require('../object.js');
|
|
const worldwide = require('../worldwide.js');
|
|
const _handlers = require('./_handlers.js');
|
|
|
|
/**
|
|
* Add an instrumentation handler for when a console.xxx method is called.
|
|
*
|
|
* Use at your own risk, this might break without changelog notice, only used internally.
|
|
* @hidden
|
|
*/
|
|
function addConsoleInstrumentationHandler(handler) {
|
|
const type = 'console';
|
|
_handlers.addHandler(type, handler);
|
|
_handlers.maybeInstrument(type, instrumentConsole);
|
|
}
|
|
|
|
function instrumentConsole() {
|
|
if (!('console' in worldwide.GLOBAL_OBJ)) {
|
|
return;
|
|
}
|
|
|
|
logger.CONSOLE_LEVELS.forEach(function (level) {
|
|
if (!(level in worldwide.GLOBAL_OBJ.console)) {
|
|
return;
|
|
}
|
|
|
|
object.fill(worldwide.GLOBAL_OBJ.console, level, function (originalConsoleMethod) {
|
|
logger.originalConsoleMethods[level] = originalConsoleMethod;
|
|
|
|
return function (...args) {
|
|
const handlerData = { args, level };
|
|
_handlers.triggerHandlers('console', handlerData);
|
|
|
|
const log = logger.originalConsoleMethods[level];
|
|
log && log.apply(worldwide.GLOBAL_OBJ.console, args);
|
|
};
|
|
});
|
|
});
|
|
}
|
|
|
|
exports.addConsoleInstrumentationHandler = addConsoleInstrumentationHandler;
|
|
//# sourceMappingURL=console.js.map
|