UNPKG

726 BJavaScriptView Raw
1'use strict';
2
3const sagaBuilder = require('./builders/sagaBuilder');
4
5const loader = require('./loader');
6
7const buildSagas = (collections, definitions, customApiBuilder) => Object.entries(collections).reduce(
8 (sagas, [sagaName, saga]) => {
9 const sagaFile = saga.path;
10 sagas[sagaName] = sagaBuilder(require(sagaFile), customApiBuilder, definitions); // eslint-disable-line
11 return sagas;
12 },
13 {},
14);
15
16// Domain may be a path to the domain dir or a loaded domain object
17// Definitions come from cqrs-domain module
18module.exports = (sagas, definitions, customApiBuilder) => {
19 if (typeof sagas === 'string' || sagas instanceof String)
20 sagas = loader(sagas);
21 return buildSagas(sagas, definitions, customApiBuilder);
22};