import { createStore, applyMiddleware, compose } from "redux"; import createSagaMiddleware from "redux-saga"; import { createLogger } from "redux-logger"; import rootReducer from "../reducers"; import rootSaga from "../sagas"; export default function configureStore(initialState = {}) { const sagaMiddleware = createSagaMiddleware(); const middlewares = [sagaMiddleware]; if (process.env.NODE_ENV === "development" && process.env.REACT_APP_REDUX_LOGGING) { middlewares.push(createLogger()); } const enhancers = [applyMiddleware(...middlewares)]; const store = createStore(rootReducer, initialState, compose(...enhancers)); // Extensions store.asyncReducers = {}; // Async reducer registry sagaMiddleware.run(rootSaga); return store; }