UNPKG

@splitsoftware/splitio-commons

Version:
50 lines (49 loc) 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pollingManagerSSFactory = void 0; var definitionsSyncTask_1 = require("./syncTasks/definitionsSyncTask"); var segmentsSyncTask_1 = require("./syncTasks/segmentsSyncTask"); var constants_1 = require("../../logger/constants"); /** * Expose start / stop mechanism for pulling data from services. */ function pollingManagerSSFactory(params, definitionChangesFetcher, segmentChangesFetcher) { var storage = params.storage, readiness = params.readiness, settings = params.settings; var log = settings.log; var segmentsSyncTask = (0, segmentsSyncTask_1.segmentsSyncTaskFactory)(segmentChangesFetcher, storage, readiness, settings); var definitionsSyncTask = (0, definitionsSyncTask_1.definitionsSyncTaskFactory)(definitionChangesFetcher, storage, readiness, settings, segmentsSyncTask); return { definitionsSyncTask: definitionsSyncTask, segmentsSyncTask: segmentsSyncTask, // Start periodic fetching (polling) start: function () { log.info(constants_1.POLLING_START); log.debug(constants_1.LOG_PREFIX_SYNC_POLLING + "".concat(definitionChangesFetcher.type, " will be refreshed each ").concat(settings.scheduler.featuresRefreshRate, " millis")); log.debug(constants_1.LOG_PREFIX_SYNC_POLLING + "segments will be refreshed each ".concat(settings.scheduler.segmentsRefreshRate, " millis")); var startingUp = definitionsSyncTask.start(); if (startingUp) { startingUp.then(function () { if (definitionsSyncTask.isRunning()) segmentsSyncTask.start(); }); } }, // Stop periodic fetching (polling) stop: function () { log.info(constants_1.POLLING_STOP); if (definitionsSyncTask.isRunning()) definitionsSyncTask.stop(); if (segmentsSyncTask.isRunning()) segmentsSyncTask.stop(); }, // Used by SyncManager to know if running in polling mode. isRunning: definitionsSyncTask.isRunning, syncAll: function () { // fetch definitions and segments. There is no need to catch this promise (`DefinitionChangesUpdater` is always resolved with a boolean value) return definitionsSyncTask.execute().then(function () { return segmentsSyncTask.execute(); }); } }; } exports.pollingManagerSSFactory = pollingManagerSSFactory;