UNPKG

winston-array-transport

Version:
38 lines (36 loc) 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _os = _interopRequireDefault(require("os")); var _winstonTransport = _interopRequireDefault(require("winston-transport")); var _defaults = require("./defaults"); var _constants = require("./constants"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable promise/prefer-await-to-callbacks */ class ArrayTransport extends _winstonTransport.default { constructor(options = {}) { super(options); const maxListeners = Number.isInteger(options.maxListeners) ? options.maxListeners : _defaults.defaultMaxListeners; this.name = options.name || this.constructor.name; this.eol = options.eol || _os.default.EOL; this.array = options.array || []; this.levels = options.levels || {}; this.parser = options.parser || options.json && _defaults.defaultParserJSON || _defaults.defaultParser; this.limit = options.limit; this.setMaxListeners(maxListeners); } log(info, callback) { setImmediate(() => { this.emit('logged', info); }); const message = info[_constants.MESSAGE]; this.array.push(this.parser(message)); if (this.limit && this.array.length > this.limit) this.array.shift(); callback(); } } exports.default = ArrayTransport; module.exports = exports.default; module.exports.default = exports.default;