UNPKG

@fabric-es/fabric-cqrs

Version:

Hyperledger Fabric middleware for event sourcing and cqrs pattern

40 lines 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCommandStore = exports.getStore = void 0; const redux_1 = require("redux"); const redux_observable_1 = require("redux-observable"); const command_1 = require("./command"); const projection_1 = require("./projection"); const query_1 = require("./query"); const reconcile_1 = require("./reconcile"); const rootEpic = redux_observable_1.combineEpics(...command_1.commandEpic, ...projection_1.projectionEpic, ...query_1.queryEpic, ...reconcile_1.reconcileEpic); const rootReducer = redux_1.combineReducers({ write: command_1.reducer, projection: projection_1.reducer, query: query_1.reducer, reconcile: reconcile_1.reducer }); const getStore = ({ queryDatabase, gateway, network, reducers, logger }) => { const epicMiddleware = redux_observable_1.createEpicMiddleware({ dependencies: { queryDatabase, reducers, gateway, network, logger, }, }); const store = redux_1.createStore(rootReducer, redux_1.applyMiddleware(epicMiddleware)); epicMiddleware.run(rootEpic); return store; }; exports.getStore = getStore; const getCommandStore = ({ gateway, network, logger }) => { const epicMiddleware = redux_observable_1.createEpicMiddleware({ dependencies: { gateway, network, logger, }, }); const store = redux_1.createStore(redux_1.combineReducers({ write: command_1.reducer }), redux_1.applyMiddleware(epicMiddleware)); epicMiddleware.run(redux_observable_1.combineEpics(...command_1.commandEpic)); return store; }; exports.getCommandStore = getCommandStore; //# sourceMappingURL=store.js.map