@fabric-es/fabric-cqrs
Version:
Hyperledger Fabric middleware for event sourcing and cqrs pattern
40 lines • 1.74 kB
JavaScript
;
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