store.js 964 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { createStore, applyMiddleware, compose } from 'redux';
  2. import { routerMiddleware } from 'react-router-redux';
  3. import { createEpicMiddleware } from 'redux-observable';
  4. import createHistory from 'history/createBrowserHistory';
  5. import rootReducer from './reducers/index.js';
  6. import rootEpic from './epics/index.js';
  7. export const history = createHistory();
  8. const initialState = {},
  9. enhancers = [],
  10. epicMiddleware = createEpicMiddleware(),
  11. middleware = [routerMiddleware(history), epicMiddleware];
  12. if( process.env.NODE_ENV === 'development' ) {
  13. const devToolsExtension = window.devToolsExtension;
  14. if( typeof devToolsExtension === 'function' ) {
  15. enhancers.push(devToolsExtension());
  16. }
  17. }
  18. const composedEnhancers = compose(
  19. applyMiddleware(...middleware),
  20. ...enhancers,
  21. );
  22. const store = createStore(
  23. rootReducer,
  24. initialState,
  25. composedEnhancers,
  26. );
  27. epicMiddleware.run(rootEpic);
  28. export default store;