cuz
Version:
Front-end modular development kit.
29 lines (22 loc) • 889 B
JavaScript
import { compose, createStore, applyMiddleware } from 'redux';
import { devTools, persistState } from 'redux-devtools';
import thunkMiddleware from 'redux-thunk';
import loggerMiddleware from 'redux-logger';
// import diffMiddleware from 'redux-diff-logger';
import requestMiddleware from 'redux-request';
export default function configureStore(reducers, { apiRoot }) {
let finalCreateStore = undefined;
const request = requestMiddleware(apiRoot);
if (process.env.NODE_ENV === 'development') {
finalCreateStore = compose(
applyMiddleware(thunkMiddleware, request, /* diffMiddleware, */ loggerMiddleware),
devTools(),
persistState(window.location.href.match(/[?&]debug=([^&]+)\b/))
)(createStore);
} else {
finalCreateStore = compose(
applyMiddleware(thunkMiddleware, request)
)(createStore);
}
return finalCreateStore(reducers);
}