@aimee-blue/ab-service-kit
Version:
Aimee Blue Service Template
50 lines (40 loc) • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mergeBackgroundEpics = mergeBackgroundEpics;
exports.mergeEpics = mergeEpics;
exports.mergeActionEpics = void 0;
var _rxjs = require("rxjs");
var _retryWithBackoff = require("./retryWithBackoff");
var _abShared = require("@aimee-blue/ab-shared");
function mergeBackgroundEpics(...epics) {
return (...[events, ctx, ...rest]) => {
return (0, _rxjs.merge)(...epics.map(epic => (0, _rxjs.defer)(() => {
var _epic$buildDeps, _epic$buildDeps2;
return epic(events, { ...((_epic$buildDeps = (_epic$buildDeps2 = epic.buildDeps) === null || _epic$buildDeps2 === void 0 ? void 0 : _epic$buildDeps2.call(epic)) !== null && _epic$buildDeps !== void 0 ? _epic$buildDeps : {}),
...ctx
}, ...rest);
}).pipe((0, _retryWithBackoff.retryWithBackoff)({
sourceDescription: `${epic.name} epic`,
logger: ctx.logger
}))));
};
}
function mergeEpics(name, ...epics) {
const mergedEpic = _abShared.Utils.setFunctionName(name, (...[commands, ctx, ...rest]) => {
return (0, _rxjs.merge)(...epics.map(epic => (0, _rxjs.defer)(() => {
var _epic$buildDeps3, _epic$buildDeps4;
return epic(commands, { ...((_epic$buildDeps3 = (_epic$buildDeps4 = epic.buildDeps) === null || _epic$buildDeps4 === void 0 ? void 0 : _epic$buildDeps4.call(epic)) !== null && _epic$buildDeps3 !== void 0 ? _epic$buildDeps3 : {}),
...ctx
}, ...rest);
}).pipe((0, _retryWithBackoff.retryWithBackoff)({
sourceDescription: `${epic.name} epic`,
logger: ctx.logger
}))));
});
return mergedEpic;
}
const mergeActionEpics = mergeEpics;
exports.mergeActionEpics = mergeActionEpics;
//# sourceMappingURL=mergeEpics.js.map