@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
47 lines (46 loc) • 2.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.submitterManagerFactory = void 0;
var eventsSubmitter_1 = require("./eventsSubmitter");
var impressionsSubmitter_1 = require("./impressionsSubmitter");
var impressionCountsSubmitter_1 = require("./impressionCountsSubmitter");
var telemetrySubmitter_1 = require("./telemetrySubmitter");
var uniqueKeysSubmitter_1 = require("./uniqueKeysSubmitter");
function submitterManagerFactory(params) {
var submitters = [
(0, impressionsSubmitter_1.impressionsSubmitterFactory)(params),
(0, eventsSubmitter_1.eventsSubmitterFactory)(params),
(0, impressionCountsSubmitter_1.impressionCountsSubmitterFactory)(params),
(0, uniqueKeysSubmitter_1.uniqueKeysSubmitterFactory)(params)
];
var telemetrySubmitter = (0, telemetrySubmitter_1.telemetrySubmitterFactory)(params);
return {
// `onlyTelemetry` true if SDK is created with userConsent not GRANTED
start: function (onlyTelemetry) {
if (!onlyTelemetry)
submitters.forEach(function (submitter) { return submitter.start(); });
if (telemetrySubmitter)
telemetrySubmitter.start();
},
// `allExceptTelemetry` true if userConsent is changed to DECLINED
stop: function (allExceptTelemetry) {
submitters.forEach(function (submitter) { return submitter.stop(); });
if (!allExceptTelemetry && telemetrySubmitter)
telemetrySubmitter.stop();
},
isRunning: function () {
return submitters.some(function (submitter) { return submitter.isRunning(); });
},
// Flush data. Called with `onlyTelemetry` true if SDK is destroyed with userConsent not GRANTED
execute: function (onlyTelemetry) {
var promises = onlyTelemetry ? [] : submitters.map(function (submitter) { return submitter.execute(); });
if (telemetrySubmitter)
promises.push(telemetrySubmitter.execute());
return Promise.all(promises);
},
isExecuting: function () {
return submitters.some(function (submitter) { return submitter.isExecuting(); });
}
};
}
exports.submitterManagerFactory = submitterManagerFactory;