/
create-store.js
24 lines (20 loc) · 994 Bytes
/
create-store.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { applyMiddleware, createStore, compose } from 'redux'
import thunk from 'redux-thunk'
import promise from 'redux-promise'
import { routerMiddleware } from 'connected-react-router'
import { batchedSubscribe } from 'redux-batched-subscribe'
/*eslint-disable camelcase*/
import { unstable_batchedUpdates as batchedUpdates } from 'react-dom'
/* eslint-enable camelcase */
import createRootReducer from './root-reducer'
const isDev = (process.webpackEnv.NODE_ENV || 'development') === 'development'
export default function create(initialState, history) {
const createMiddlewaredStore = compose(
applyMiddleware(thunk, promise, routerMiddleware(history)),
batchedSubscribe(batchedUpdates),
// Support for https://github.com/zalmoxisus/redux-devtools-extension
isDev && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__() : f => f,
)(createStore)
const store = createMiddlewaredStore(createRootReducer(history), initialState)
return store
}