UNPKG

winston-openobserve

Version:
88 lines 4.42 kB
"use strict"; var _OpenObserveTransport_instances, _OpenObserveTransport_sender, _OpenObserveTransport_options, _OpenObserveTransport_getTimestamp; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenObserveTransport = void 0; const tslib_1 = require("tslib"); const winston_transport_1 = tslib_1.__importDefault(require("winston-transport")); const sender_1 = require("./sender"); const triple_beam_1 = require("triple-beam"); const assert = tslib_1.__importStar(require("assert")); const async_exit_hook_1 = tslib_1.__importDefault(require("async-exit-hook")); function isURL(url) { try { new URL('', url); return true; } catch (error) { return false; } } class OpenObserveTransport extends winston_transport_1.default { constructor(options) { super(); _OpenObserveTransport_instances.add(this); _OpenObserveTransport_sender.set(this, void 0); _OpenObserveTransport_options.set(this, void 0); assert.ok(options.defaultOrg, 'Set default org_id'); assert.ok(options.defaultStream, 'Set default stream name'); assert.ok(isURL(options.host), 'Host URL can not parse'); tslib_1.__classPrivateFieldSet(this, _OpenObserveTransport_options, Object.assign({ bulk: true, gracefulShutdown: true, timeout: 10000, interval: 10000, cleanOnRequestError: false, useNow: false }, options), "f"); tslib_1.__classPrivateFieldSet(this, _OpenObserveTransport_sender, new sender_1.Sender(tslib_1.__classPrivateFieldGet(this, _OpenObserveTransport_options, "f")), "f"); if (tslib_1.__classPrivateFieldGet(this, _OpenObserveTransport_options, "f").gracefulShutdown) { (0, async_exit_hook_1.default)(() => { this.close(); }); } } log(info, next) { setImmediate(() => { this.emit('logged', info); }); let { label, labels, timestamp, level, message, org, stream, bulk } = info, rest = tslib_1.__rest(info, ["label", "labels", "timestamp", "level", "message", "org", "stream", "bulk"]); timestamp = tslib_1.__classPrivateFieldGet(this, _OpenObserveTransport_instances, "m", _OpenObserveTransport_getTimestamp).call(this, timestamp); let openObserveLabels = { level, }; labels = Object.assign({}, tslib_1.__classPrivateFieldGet(this, _OpenObserveTransport_options, "f").labels); for (const key in openObserveLabels) { if (Object.prototype.hasOwnProperty.call(openObserveLabels, key)) { const value = openObserveLabels[key]; if (typeof value !== 'string') { openObserveLabels[key] = String(value); } } } message = !!tslib_1.__classPrivateFieldGet(this, _OpenObserveTransport_options, "f").format ? info[triple_beam_1.MESSAGE] : `${message} ${rest && Object.keys(rest).length > 0 ? JSON.stringify(rest) : ''}`; tslib_1.__classPrivateFieldGet(this, _OpenObserveTransport_sender, "f") .push({ labels, timestamp, level, message, label, orgId: org !== null && org !== void 0 ? org : tslib_1.__classPrivateFieldGet(this, _OpenObserveTransport_options, "f").defaultOrg, streamName: stream !== null && stream !== void 0 ? stream : tslib_1.__classPrivateFieldGet(this, _OpenObserveTransport_options, "f").defaultStream, }, bulk !== null && bulk !== void 0 ? bulk : tslib_1.__classPrivateFieldGet(this, _OpenObserveTransport_options, "f").bulk) .then(next); } close() { tslib_1.__classPrivateFieldGet(this, _OpenObserveTransport_sender, "f").close(); } } exports.OpenObserveTransport = OpenObserveTransport; _OpenObserveTransport_sender = new WeakMap(), _OpenObserveTransport_options = new WeakMap(), _OpenObserveTransport_instances = new WeakSet(), _OpenObserveTransport_getTimestamp = function _OpenObserveTransport_getTimestamp(timestamp) { if (tslib_1.__classPrivateFieldGet(this, _OpenObserveTransport_options, "f").useNow) return Date.now(); let ts; if (timestamp) { ts = new Date(timestamp).getTime(); ts = isNaN(ts) ? Date.now() : ts; } else { ts = Date.now(); } return ts; }; //# sourceMappingURL=openobserve-transport.js.map