1234567891011121314151617181920212223242526272829303132333435 |
- "use strict";
- import {createStore, applyMiddleware} from 'redux';
- import {composeReducers} from 'redux-sac';
- import {effectsMiddleware} from 'redux-effex';
- export default () => {
- let reducers = [], effects = [], middlewares = [];
- function withReducers (..._reducers) {
- reducers.push(..._reducers);
- return this;
- }
- function withEffects (..._effects) {
- effects.push(..._effects);
- return this;
- }
- function withMiddlewares (..._middlewares) {
- middlewares.push(..._middlewares);
- return this;
- }
- function create (reset = false) {
- const store = createStore(
- composeReducers(...reducers),
- applyMiddleware(...middlewares, effectsMiddleware(effects))
- );
- return store;
- }
- return {withReducers, withMiddlewares, withEffects, create};
- }
|