redux-vertical
Version:
Build redux vertically
20 lines • 917 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const invariant_1 = __importDefault(require("invariant"));
function composeReducers(...reducers) {
reducers.forEach((reducer) => invariant_1.default(typeof reducer === 'function', 'reducer should be functions but found %s', reducer));
function composedReducer(state, action) {
let hasChanged = false;
return reducers.reduce((iteratedState, reducer) => {
const nextState = reducer(iteratedState, action);
hasChanged = hasChanged || iteratedState !== nextState;
return hasChanged ? nextState : iteratedState;
}, state);
}
return composedReducer;
}
exports.default = composeReducers;
//# sourceMappingURL=compose-reducers.js.map