UNPKG

redux-boost

Version:
68 lines (45 loc) 1.95 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); exports.default = configureStore; var _redux = require('redux'); var _env = require('../utils/env'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var sagaMiddleware = void 0; function enhanceWith() { var middlewareArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var options = arguments[1]; var devtoolExtension = options.devtoolExtension, reduxLogger = options.reduxLogger; var composeEnhancers = _redux.compose; var middlewares = middlewareArray; if (_env.isDev) { // eslint-disable-next-line no-underscore-dangle var devtoolsCompose = global.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__; if (devtoolExtension && devtoolsCompose) { composeEnhancers = devtoolsCompose; } if (reduxLogger === true || reduxLogger === 'fallback' && !devtoolsCompose) { var _require = require('redux-logger'), createLogger = _require.createLogger; middlewares.push(createLogger({ collapsed: true })); } } var enhancers = [_redux.applyMiddleware.apply(undefined, (0, _toConsumableArray3.default)(middlewares))]; return composeEnhancers.apply(undefined, enhancers)(_redux.createStore); } function configureStore(options) { var _options$initialState = options.initialState, initialState = _options$initialState === undefined ? {} : _options$initialState, middlewares = options.middlewares, getReducer = options.getReducer; var createStoreWithMiddleware = enhanceWith(middlewares, options); var store = createStoreWithMiddleware(getReducer(), initialState); if (middlewares.saga) { store.runSaga = sagaMiddleware.run; } return store; }