clean-architecture
Version:
Utilities for implementing clean architecture using Redux
27 lines • 1.31 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createStore = void 0;
var toolkit_1 = require("@reduxjs/toolkit");
var usecasesToReducer_1 = require("./usecasesToReducer");
var middlewareEvtAction_1 = require("./middlewareEvtAction");
function createStore(params) {
var context = params.context, usecasesArr = params.usecasesArr;
var _a = (0, middlewareEvtAction_1.createMiddlewareEvtAction)(usecasesArr), evtAction = _a.evtAction, middlewareEvtAction = _a.middlewareEvtAction;
//NOTE: We want to let the user change the properties, sometimes all the port
//can't be ready at inception.
Object.assign(context, { evtAction: evtAction });
var store = (0, toolkit_1.configureStore)({
"reducer": (0, usecasesToReducer_1.usecasesToReducer)(usecasesArr),
"middleware": function (getDefaultMiddleware) {
return getDefaultMiddleware({
"thunk": { "extraArgument": context },
"serializableCheck": false
}).concat(middlewareEvtAction);
}
});
var getState = store.getState, dispatch = store.dispatch;
//@ts-expect-error
return { getState: getState, dispatch: dispatch, evtAction: evtAction };
}
exports.createStore = createStore;
//# sourceMappingURL=createStore.js.map
;