UNPKG

@baselime/winston-transport

Version:
43 lines (42 loc) 1.06 kB
// src/index.ts import Transport from "winston-transport"; import Axios from "axios"; function sendToBaselime(opts, toSend) { return Axios.post(`https://events.baselime.io/v1/${opts.dataset}`, toSend, { headers: { "x-api-key": opts.baselimeApiKey, "x-service": opts.service, "x-namespace": opts.namespace } }); } var BaselimeTransport = class extends Transport { options; toSend = []; immediate = null; constructor(opts) { opts.dataset = opts.dataset || "winston-logs"; super(opts); this.options = opts; } log(info, callback) { this.toSend.push(info); if (!this.immediate) { this.immediate = setImmediate(() => { sendToBaselime(this.options, this.toSend).catch(console.error); this.toSend = []; this.immediate = null; }); } callback(); } async close() { if (this.toSend.length > 0) { clearImmediate(this.immediate); await sendToBaselime(this.options, this.toSend).catch(console.error); } } }; export { BaselimeTransport };