@warp-works/warpjs-utils
Version:
Utility functions for WarpJS and plugins
44 lines (29 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _clone = require('lodash/clone');
var _clone2 = _interopRequireDefault(_clone);
var _redux = require('redux');
var _reduxLogger = require('redux-logger');
var _constants = require('./constants');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
// import debug from 'debug';
// const log = debug('W2:utils:react-utils/create-store');
exports.default = function (reducers) {
var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var middlewares = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
var inDevelopment = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
var clonedMiddlewares = (0, _clone2.default)(middlewares);
var composeEnhanders = _redux.compose;
if (inDevelopment) {
clonedMiddlewares.push((0, _reduxLogger.createLogger)());
if (window && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) {
composeEnhanders = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;
}
}
var store = (0, _redux.createStore)(reducers, initialState, composeEnhanders(_redux.applyMiddleware.apply(undefined, _toConsumableArray(clonedMiddlewares))));
store.dispatch({ type: _constants.INIT_TYPE });
return store;
};