pg-transactional-outbox
Version:
A PostgreSQL based transactional outbox and inbox pattern implementation to support exactly once message processing (with at least once message delivery).
50 lines • 1.64 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getInMemoryLogger = exports.getDisabledLogger = exports.getDefaultLogger = void 0;
/* eslint-disable @typescript-eslint/no-empty-function */
const pino_1 = __importDefault(require("pino"));
const getDefaultLogger = (name = 'default') => (0, pino_1.default)({ name, timestamp: pino_1.default.stdTimeFunctions.isoTime });
exports.getDefaultLogger = getDefaultLogger;
/**
* Disable the logger.
*/
const getDisabledLogger = () => ({
fatal: () => { },
error: () => { },
warn: () => { },
info: () => { },
debug: () => { },
trace: () => { },
silent: () => { },
level: 'silent',
msgPrefix: '',
});
exports.getDisabledLogger = getDisabledLogger;
/**
* Writes all logs to an array that is returned from this call.
* @param context Add this to every log entry
* @returns The logger instance and the array of in-memory logs
*/
const getInMemoryLogger = (context) => {
const logs = [];
const l = (type) => (...args) => {
logs.push({ type, args, date: new Date().toISOString(), context });
};
const logger = {
fatal: l('fatal'),
error: l('error'),
warn: l('warn'),
info: l('info'),
debug: l('debug'),
trace: l('trace'),
silent: l('silent'),
level: 'trace',
msgPrefix: '',
};
return [logger, logs];
};
exports.getInMemoryLogger = getInMemoryLogger;
//# sourceMappingURL=logger.js.map