UNPKG

log-vault

Version:

A generator of Winston logger instance with pre-defined configurable transports and formats and extra functionality.

40 lines (39 loc) 1.47 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NotificationsTransport = void 0; const defaultConnections_1 = require("../defaults/defaultConnections"); const defaultJobOptions_1 = require("../defaults/defaultJobOptions"); const bullmq_1 = require("bullmq"); const node_crypto_1 = require("node:crypto"); const winston_transport_1 = __importDefault(require("winston-transport")); const util_1 = require("../util"); class NotificationsTransport extends winston_transport_1.default { constructor(options = {}) { super(options); const { name = (0, util_1.projectDirName)(), queueOptions, jobOptions } = options; this.jobOptions = { ...defaultJobOptions_1.defaultJobOptions, ...jobOptions }; this.queue = new bullmq_1.Queue(name, { connection: defaultConnections_1.defaultRedisConnection, ...queueOptions }); } async log(info, callback) { setImmediate(() => { this.emit("logged", info); }); try { await this.queue.add((0, node_crypto_1.randomUUID)(), info, this.jobOptions); callback(); } catch (error) { callback(error); } } } exports.NotificationsTransport = NotificationsTransport;