winston-array-transport
Version:
write logs to js Array
38 lines (36 loc) • 1.44 kB
JavaScript
;
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;