UNPKG

roarr

Version:

JSON logger for Node.js and browser.

37 lines 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMockLogger = void 0; const constants_1 = require("../constants"); const noopLevelMethod = () => { return undefined; }; const mockLoggerPrototype = Object.create(Function.prototype); mockLoggerPrototype.adopt = async function (_routine) { return _routine(); }; // A mock logger has no observable state: every log method is a noop, // `getContext` always returns an empty object and the child context is // discarded. Returning `this` therefore produces a logger indistinguishable // from a freshly constructed one, while avoiding a function allocation and an // `Object.setPrototypeOf` call (~75ns) per child. mockLoggerPrototype.child = function () { return this; }; mockLoggerPrototype.getContext = function () { return {}; }; for (const logLevelName of Object.keys(constants_1.logLevels)) { mockLoggerPrototype[logLevelName] = noopLevelMethod; mockLoggerPrototype[logLevelName + 'Once'] = noopLevelMethod; } const createMockLogger = (onMessage, parentContext) => { const log = () => { return undefined; }; log.onMessage = onMessage; log.parentMessageContext = parentContext; Object.setPrototypeOf(log, mockLoggerPrototype); return log; }; exports.createMockLogger = createMockLogger; //# sourceMappingURL=createMockLogger.js.map