UNPKG

@segment/analytics-core

Version:

This package represents core 'shared' functionality that is shared by analytics packages. This is not designed to be used directly, but internal to analytics-node and analytics-browser.

62 lines 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CoreLogger = void 0; var tslib_1 = require("tslib"); var CoreLogger = /** @class */ (function () { function CoreLogger() { this._logs = []; } CoreLogger.prototype.log = function (level, message, extras) { var time = new Date(); this._logs.push({ level: level, message: message, time: time, extras: extras, }); }; Object.defineProperty(CoreLogger.prototype, "logs", { get: function () { return this._logs; }, enumerable: false, configurable: true }); CoreLogger.prototype.flush = function () { if (this.logs.length > 1) { var formatted = this._logs.reduce(function (logs, log) { var _a; var _b, _c; var line = tslib_1.__assign(tslib_1.__assign({}, log), { json: JSON.stringify(log.extras, null, ' '), extras: log.extras }); delete line['time']; var key = (_c = (_b = log.time) === null || _b === void 0 ? void 0 : _b.toISOString()) !== null && _c !== void 0 ? _c : ''; if (logs[key]) { key = "".concat(key, "-").concat(Math.random()); } return tslib_1.__assign(tslib_1.__assign({}, logs), (_a = {}, _a[key] = line, _a)); }, {}); // ie doesn't like console.table if (console.table) { console.table(formatted); } else { console.log(formatted); } } else { this.logs.forEach(function (logEntry) { var level = logEntry.level, message = logEntry.message, extras = logEntry.extras; if (level === 'info' || level === 'debug') { console.log(message, extras !== null && extras !== void 0 ? extras : ''); } else { console[level](message, extras !== null && extras !== void 0 ? extras : ''); } }); } this._logs = []; }; return CoreLogger; }()); exports.CoreLogger = CoreLogger; //# sourceMappingURL=index.js.map