@baselime/winston-transport
Version:
Ship logs from winston to Baselime
43 lines (42 loc) • 1.06 kB
JavaScript
// 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
};