redux-tiles
Version:
Library to create and easily compose redux pieces together in less verbose manner
23 lines • 936 B
JavaScript
import { isFunction } from 'lodash';
import { combineReducers } from 'redux';
import { iterate, populateHash } from './helpers';
import { changeDefaultReducer, DEFAULT_REDUCER } from './tiles/selectors';
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