electron-log-transport-datadog
Version:
Send logs to Datadog from electron-log in Electron.
54 lines (52 loc) • 1.54 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/index.ts
var _datadogtransportcommon = require('datadog-transport-common');
function dataDogTransport(options) {
options.service = _nullishCoalesce(options.service, () => ( "Electron"));
const transport = new (0, _datadogtransportcommon.DataDogTransport)(options);
return function processLogs(message) {
let msg = "";
let metadata = {};
let arrayData = [];
for (const data of message.data) {
if (typeof data === "string") {
msg = msg + data;
continue;
}
if (Array.isArray(data)) {
arrayData = arrayData.concat(data);
continue;
}
if (typeof data === "object") {
metadata = {
...metadata,
...data
};
}
}
let item = {
date: message.date.getTime(),
level: message.level,
message: msg
};
if (Object.keys(metadata).length) {
if (options.metadataField) {
item[options.metadataField] = metadata;
} else {
item = {
...item,
...metadata
};
}
}
if (arrayData.length) {
if (options.arrayDataField) {
item[options.arrayDataField] = arrayData;
} else {
item.arrayData = arrayData;
}
}
transport.processLog(item);
};
}
exports.dataDogTransport = dataDogTransport;
//# sourceMappingURL=index.js.map