@aimee-blue/ab-service-kit
Version:
Aimee Blue Service Template
43 lines (34 loc) • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.setupBackground = setupBackground;
var _shared = require("../shared");
var _teardown = require("../shared/teardown");
var _epics = require("../shared/epics");
var _eventBus = require("../shared/eventBus");
async function setupBackground(config, deps) {
var _config$shouldUseDefa;
const useDefault = (_config$shouldUseDefa = config.shouldUseDefaultBackgroundOperations) !== null && _config$shouldUseDefa !== void 0 ? _config$shouldUseDefa : true;
if (config.background || useDefault) {
var _config$background, _config$background2;
const backgroundEpics = await ((_config$background = (_config$background2 = config.background) === null || _config$background2 === void 0 ? void 0 : _config$background2.call(config, deps)) !== null && _config$background !== void 0 ? _config$background : Promise.resolve([]));
const logger = (0, _shared.createTaggedLogger)([], deps.logger);
const epic = useDefault ? (0, _shared.mergeBackgroundEpics)(...backgroundEpics, ..._epics.defaultBackground) : (0, _shared.mergeBackgroundEpics)(...backgroundEpics);
const result = epic((0, _eventBus.fromEventBus)(), {
logger
}).pipe((0, _eventBus.pushToEventBus)());
const subscription = result.subscribe({
error: err => {
(0, _shared.registerError)(err);
logger.error(`💥 CRITICAL! Background operations has failed`, err);
}
});
return async () => {
subscription.unsubscribe();
};
} else {
return _teardown.noop;
}
}
//# sourceMappingURL=background.js.map