InsidersByte/honeymoon-gift-list

View on GitHub
public/store/configureStore.dev.js

Summary

Maintainability
A
0 mins
Test Coverage
/* @flow */

import { createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import reduxImmutableStateInvariant from 'redux-immutable-state-invariant'; // eslint-disable-line import/no-extraneous-dependencies
import { createLogger } from 'redux-logger'; // eslint-disable-line import/no-extraneous-dependencies
import DevTools from '../containers/DevTools';
import rootReducer from '../redux';
import api from '../middleware/api';

module.exports = (initialState: Object) => {
  const enhancer = compose(applyMiddleware(thunk, api, reduxImmutableStateInvariant(), createLogger()), DevTools.instrument());

  const store = createStore(rootReducer, initialState, enhancer);

  // Hot reload reducers (requires Webpack or Browserify HMR to be enabled)
  if (module.hot) {
    // FIXME:FLOW ignore error
    module.hot.accept(
      '../redux',
      () =>
        // FIXME:FLOW ignore error
        store.replaceReducer(require('../redux')) // eslint-disable-line global-require
    );
  }

  return store;
};