redux-tiles
Version:
Library to create and easily compose redux pieces together in less verbose manner
23 lines • 937 B
JavaScript
import { combineReducers } from "redux";
import { iterate, populateHash } from "./helpers";
import { changeDefaultReducer, DEFAULT_REDUCER } from "./tiles/selectors";
import { isFunction } from "./utils";
export function createNestedReducers(value) {
return combineReducers(Object.keys(value).reduce(function (hash, key) {
var elem = value[key];
hash[key] = isFunction(elem) ? elem : createNestedReducers(elem);
return hash;
}, {}));
}
export function createReducers(modules, topReducer) {
if (topReducer === void 0) { topReducer = DEFAULT_REDUCER; }
if (topReducer !== DEFAULT_REDUCER) {
changeDefaultReducer(topReducer);
}
var nestedModules = iterate(modules).reduce(function (hash, module) {
populateHash(hash, module.tileName, module.reducer);
return hash;
}, {});
return createNestedReducers(nestedModules);
}
//# sourceMappingURL=createReducers.js.map