@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
80 lines • 5.44 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.HttpWriter = exports.DEFAULT_BATCH_INTERVAL = void 0;
var ajax_1 = require("../../app-transport/ajax");
var writer_1 = require("./writer");
exports.DEFAULT_BATCH_INTERVAL = 3000;
var HttpWriter = /** @class */ (function (_super) {
__extends(HttpWriter, _super);
function HttpWriter(config) {
var _this = this;
var _a, _b, _c;
_this = _super.call(this, config) || this;
_this.logEntryQueue = [];
_this.batch = (_a = config.batch) !== null && _a !== void 0 ? _a : false;
_this.endpoint = config.endpoint;
_this.headers = (_b = config.headers) !== null && _b !== void 0 ? _b : {};
_this.batchInterval = (_c = config.batchInterval) !== null && _c !== void 0 ? _c : exports.DEFAULT_BATCH_INTERVAL;
return _this;
}
HttpWriter.prototype.log = function (message, level) {
if (!this.isLoggable(level)) {
return;
}
var logEntry = {
message: message,
level: level,
timestamp: Date.now(),
};
if (this.batch) {
this.doBatch(logEntry);
}
else {
this.emitLogs([logEntry]);
}
};
HttpWriter.prototype.flush = function () {
if (this.batchTimeoutId) {
clearTimeout(this.batchTimeoutId);
this.batchTimeoutId = undefined;
}
var entriesToFlush = this.logEntryQueue.slice();
this.logEntryQueue = [];
this.emitLogs(entriesToFlush);
};
HttpWriter.prototype.doBatch = function (logEntry) {
var _this = this;
this.logEntryQueue.push(logEntry);
if (this.logEntryQueue.length === 1) {
// starting timer when the first log is enqueued
this.batchTimeoutId = setTimeout(function () {
_this.flush();
}, this.batchInterval);
}
};
HttpWriter.prototype.emitLogs = function (logs) {
(0, ajax_1.post)(this.endpoint, logs, {
headers: this.headers,
}).catch(function (error) {
console.error('Failed to send logs to server', error);
});
};
return HttpWriter;
}(writer_1.BatchableWriter));
exports.HttpWriter = HttpWriter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbG9nZ2VyL3dyaXRlci9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUErQztBQUkvQyxtQ0FBd0Q7QUFhM0MsUUFBQSxzQkFBc0IsR0FBRyxJQUFJLENBQUE7QUFFMUM7SUFBZ0MsOEJBQWU7SUFTN0Msb0JBQVksTUFBd0I7UUFBcEMsaUJBTUM7O2dCQUxDLGtCQUFNLE1BQU0sQ0FBQztRQUxQLG1CQUFhLEdBQWUsRUFBRSxDQUFBO1FBTXBDLEtBQUksQ0FBQyxLQUFLLEdBQUcsTUFBQSxNQUFNLENBQUMsS0FBSyxtQ0FBSSxLQUFLLENBQUE7UUFDbEMsS0FBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFBO1FBQy9CLEtBQUksQ0FBQyxPQUFPLEdBQUcsTUFBQSxNQUFNLENBQUMsT0FBTyxtQ0FBSSxFQUFFLENBQUE7UUFDbkMsS0FBSSxDQUFDLGFBQWEsR0FBRyxNQUFBLE1BQU0sQ0FBQyxhQUFhLG1DQUFJLDhCQUFzQixDQUFBOztJQUNyRSxDQUFDO0lBRUQsd0JBQUcsR0FBSCxVQUFJLE9BQWUsRUFBRSxLQUFlO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLE9BQU07U0FDUDtRQUVELElBQU0sUUFBUSxHQUFhO1lBQ3pCLE9BQU8sU0FBQTtZQUNQLEtBQUssT0FBQTtZQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1NBQ3RCLENBQUE7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1NBQ3ZCO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtTQUMxQjtJQUNILENBQUM7SUFFRCwwQkFBSyxHQUFMO1FBQ0UsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7WUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUE7U0FDaEM7UUFFRCxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUVPLDRCQUFPLEdBQWYsVUFBZ0IsUUFBa0I7UUFBbEMsaUJBUUM7UUFQQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNqQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNuQyxnREFBZ0Q7WUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUM7Z0JBQy9CLEtBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUNkLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7U0FDdkI7SUFDSCxDQUFDO0lBRU8sNkJBQVEsR0FBaEIsVUFBaUIsSUFBZ0I7UUFDL0IsSUFBQSxXQUFJLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBQyxLQUFLO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUN2RCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDSCxpQkFBQztBQUFELENBQUMsQUEvREQsQ0FBZ0Msd0JBQWUsR0ErRDlDO0FBL0RZLGdDQUFVIn0=