UNPKG

@splitsoftware/splitio-commons

Version:
47 lines (46 loc) 2.31 kB
"use strict"; 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;