UNPKG

anew

Version:

React and Redux Framework with additional power.

63 lines (46 loc) 2.15 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.default = combineReducers; var _redux = require('redux'); var _reduxPersist = require('redux-persist'); var _createPersistConfig = require('./createPersistConfig'); var _createPersistConfig2 = _interopRequireDefault(_createPersistConfig); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function combineReducers(anewStore, stores, persist) { /** * Populate/Combine State and Reducers */ for (var i = 0, storesLen = stores.length; i < storesLen; i++) { var _stores$i = stores[i], getState = _stores$i.getState, _stores$i$anew = _stores$i.anew, name = _stores$i$anew.name, reducer = _stores$i$anew.reducer; anewStore.state[name] = getState(); anewStore.reducers[name] = reducer; } persist = (0, _createPersistConfig2.default)(persist, anewStore.name); /** * Reduce State then return anewStore reference */ var combinedReducer = persist ? (0, _reduxPersist.persistCombineReducers)(persist, anewStore.reducers) : (0, _redux.combineReducers)(anewStore.reducers); return function combination() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var action = arguments[1]; switch (action.type) { case '@@anew:BATCH': for (var _i = 0, payloadLen = action.payload.length; _i < payloadLen; _i++) { var batchAction = action.payload[_i]; state = combinedReducer(state, _extends({}, batchAction, { state: state })); } return state; default: return combinedReducer(state, action); } }; }