UNPKG

feature-redux

Version:
45 lines (31 loc) 1.33 kB
'use strict'; exports.__esModule = true; exports.default = slicedReducer; var _verify = require('./util/verify'); var _verify2 = _interopRequireDefault(_verify); var _lodash = require('lodash.isstring'); var _lodash2 = _interopRequireDefault(_lodash); var _lodash3 = require('lodash.isfunction'); var _lodash4 = _interopRequireDefault(_lodash3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // NOTE: See README for complete description function slicedReducer(slice, reducer) { // validate parameters var check = _verify2.default.prefix('slicedReducer() parameter violation: '); check(slice, 'slice is required'); check((0, _lodash2.default)(slice), 'slice must be a string'); check(reducer, 'reducer is required'); check((0, _lodash4.default)(reducer), 'reducer must be a function'); // auto generate a standard selector for our sliced state var nodeNames = slice.split('.'); function getSlicedState(appState) { // console.log(`xx in selector getSlicedState(): `, {nodeNames, appState}); return nodeNames.reduce(function (runningNode, nodeName) { return runningNode[nodeName]; }, appState); } // embellish/return the supplied reducer reducer.slice = slice; reducer.getSlicedState = getSlicedState; return reducer; }