redux-tiles
Version:
Library to create and easily compose redux pieces together in less verbose manner
27 lines • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var lodash_1 = require("lodash");
var redux_1 = require("redux");
var helpers_1 = require("./helpers");
var selectors_1 = require("./tiles/selectors");
function createNestedReducers(value) {
return redux_1.combineReducers(Object.keys(value).reduce(function (hash, key) {
var elem = value[key];
hash[key] = lodash_1.isFunction(elem) ? elem : createNestedReducers(elem);
return hash;
}, {}));
}
exports.createNestedReducers = createNestedReducers;
function createReducers(modules, topReducer) {
if (topReducer === void 0) { topReducer = selectors_1.DEFAULT_REDUCER; }
if (topReducer !== selectors_1.DEFAULT_REDUCER) {
selectors_1.changeDefaultReducer(topReducer);
}
var nestedModules = helpers_1.iterate(modules).reduce(function (hash, module) {
helpers_1.populateHash(hash, module.tileName, module.reducer);
return hash;
}, {});
return createNestedReducers(nestedModules);
}
exports.createReducers = createReducers;
//# sourceMappingURL=createReducers.js.map