1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.reduxLeaves = reduxLeaves;
|
7 | exports["default"] = void 0;
|
8 |
|
9 | var _leafReducer = require("./leafReducer");
|
10 |
|
11 | var _standardise = _interopRequireDefault(require("./reducersDict/standardise"));
|
12 |
|
13 | var _utils = require("./utils");
|
14 |
|
15 | var _proxy = _interopRequireDefault(require("./actions/proxy"));
|
16 |
|
17 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
18 |
|
19 | /**
|
20 | *
|
21 | * @param initialState - Initial state of the reducer
|
22 | * @param reducersDict - Object of leaf reducer definitions keyed by creatorKeys
|
23 | *
|
24 | * @template TS - TreeShape
|
25 | * @template RD - Dictionary of LeafReducer.Definition
|
26 | */
|
27 | function reduxLeaves(initialState, reducersDict) {
|
28 | var leafReducersDict = (0, _standardise["default"])(reducersDict || {});
|
29 |
|
30 | var reducer = function reducer() {
|
31 | var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
32 | var action = arguments.length > 1 ? arguments[1] : undefined;
|
33 | if (!isLeafAction(action)) return state;
|
34 | if (isCompoundAction(action)) return action.payload.reduce(reducer, state);
|
35 | var leaf = action.leaf;
|
36 | var path = leaf.path;
|
37 | var prevLeafState = (0, _utils.getState)(state, path);
|
38 | var newLeafState = (0, _leafReducer.leafReducer)(prevLeafState, action, state, initialState, leafReducersDict);
|
39 | return (0, _utils.updateState)(state, path, newLeafState);
|
40 | };
|
41 |
|
42 | var actions = (0, _proxy["default"])(initialState, leafReducersDict);
|
43 | return [reducer, actions];
|
44 | }
|
45 |
|
46 | function isLeafAction(action) {
|
47 | // @ts-ignore
|
48 | return action.leaf;
|
49 | }
|
50 |
|
51 | function isCompoundAction(action) {
|
52 | return isLeafAction(action) && action.leaf.compound;
|
53 | }
|
54 |
|
55 | var _default = reduxLeaves;
|
56 | exports["default"] = _default;
|
57 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWR1eExlYXZlcy50cyJdLCJuYW1lcyI6WyJyZWR1eExlYXZlcyIsImluaXRpYWxTdGF0ZSIsInJlZHVjZXJzRGljdCIsImxlYWZSZWR1Y2Vyc0RpY3QiLCJyZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJpc0xlYWZBY3Rpb24iLCJpc0NvbXBvdW5kQWN0aW9uIiwicGF5bG9hZCIsInJlZHVjZSIsImxlYWYiLCJwYXRoIiwicHJldkxlYWZTdGF0ZSIsIm5ld0xlYWZTdGF0ZSIsImFjdGlvbnMiLCJjb21wb3VuZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTs7OztBQU9BOzs7Ozs7OztBQVFBLFNBQVNBLFdBQVQsQ0FDRUMsWUFERixFQUVFQyxZQUZGLEVBR3lEO0FBQ3ZELE1BQU1DLGdCQUE0QyxHQUFHLDZCQUE0QkQsWUFBWSxJQUFJLEVBQTVDLENBQXJEOztBQUVBLE1BQU1FLE9BQTRCLEdBQUcsU0FBL0JBLE9BQStCLEdBQStDO0FBQUEsUUFBdENDLEtBQXNDLHVFQUE5QkosWUFBOEI7QUFBQSxRQUFoQkssTUFBZ0I7QUFFbEYsUUFBSSxDQUFDQyxZQUFZLENBQUNELE1BQUQsQ0FBakIsRUFBMkIsT0FBT0QsS0FBUDtBQUUzQixRQUFJRyxnQkFBZ0IsQ0FBQ0YsTUFBRCxDQUFwQixFQUE4QixPQUFPQSxNQUFNLENBQUNHLE9BQVAsQ0FBZUMsTUFBZixDQUNuQ04sT0FEbUMsRUFFbkNDLEtBRm1DLENBQVA7QUFKb0QsUUFTMUVNLElBVDBFLEdBU2pFTCxNQVRpRSxDQVMxRUssSUFUMEU7QUFBQSxRQVUxRUMsSUFWMEUsR0FVakVELElBVmlFLENBVTFFQyxJQVYwRTtBQVlsRixRQUFNQyxhQUFhLEdBQUcscUJBQVNSLEtBQVQsRUFBZ0JPLElBQWhCLENBQXRCO0FBRUEsUUFBTUUsWUFBWSxHQUFHLDhCQUNuQkQsYUFEbUIsRUFFbkJQLE1BRm1CLEVBR25CRCxLQUhtQixFQUluQkosWUFKbUIsRUFLbkJFLGdCQUxtQixDQUFyQjtBQVFBLFdBQU8sd0JBQVlFLEtBQVosRUFBbUJPLElBQW5CLEVBQXlCRSxZQUF6QixDQUFQO0FBQ0QsR0F2QkQ7O0FBeUJBLE1BQU1DLE9BQU8sR0FBRyx1QkFBc0RkLFlBQXRELEVBQW9FRSxnQkFBcEUsQ0FBaEI7QUFFQSxTQUFPLENBQUNDLE9BQUQsRUFBVVcsT0FBVixDQUFQO0FBQ0Q7O0FBRUQsU0FBU1IsWUFBVCxDQUFzQkQsTUFBdEIsRUFBeUY7QUFDdkY7QUFDQSxTQUFPQSxNQUFNLENBQUNLLElBQWQ7QUFDRDs7QUFFRCxTQUFTSCxnQkFBVCxDQUEwQkYsTUFBMUIsRUFBd0U7QUFDdEUsU0FBT0MsWUFBWSxDQUFDRCxNQUFELENBQVosSUFBd0JBLE1BQU0sQ0FBQ0ssSUFBUCxDQUFZSyxRQUEzQztBQUNEOztlQUdjaEIsVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxlYWZSZWR1Y2VyIH0gZnJvbSAnLi9sZWFmUmVkdWNlcic7XG5pbXBvcnQgc3RhbmRhcmRpc2VSZWR1Y2Vyc0RpY3QgZnJvbSAnLi9yZWR1Y2Vyc0RpY3Qvc3RhbmRhcmRpc2UnO1xuaW1wb3J0IHsgZ2V0U3RhdGUsIHVwZGF0ZVN0YXRlIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBSZWR1Y2VyIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHByb3h5QWN0aW9ucyBmcm9tICcuL2FjdGlvbnMvcHJveHknO1xuaW1wb3J0IHsgRmx1eFN0YW5kYXJkQWN0aW9uLCBMZWFmU3RhbmRhcmRBY3Rpb24sIExlYWZDb21wb3VuZEFjdGlvbiB9IGZyb20gJy4vdHlwZXMvYWN0aW9uLnR5cGUnO1xuaW1wb3J0IExlYWZSZWR1Y2VyIGZyb20gJy4vdHlwZXMvcmVkdWNlci50eXBlJztcbmltcG9ydCB7IEFjdGlvbnMgfSBmcm9tICcuL3R5cGVzL2FjdGlvbnMudHlwZSc7XG5cbnR5cGUgQWN0aW9uID0gRmx1eFN0YW5kYXJkQWN0aW9uIHwgTGVhZlN0YW5kYXJkQWN0aW9uIHwgTGVhZkNvbXBvdW5kQWN0aW9uXG5cbi8qKlxuICogXG4gKiBAcGFyYW0gaW5pdGlhbFN0YXRlIC0gSW5pdGlhbCBzdGF0ZSBvZiB0aGUgcmVkdWNlclxuICogQHBhcmFtIHJlZHVjZXJzRGljdCAtIE9iamVjdCBvZiBsZWFmIHJlZHVjZXIgZGVmaW5pdGlvbnMga2V5ZWQgYnkgY3JlYXRvcktleXNcbiAqIFxuICogQHRlbXBsYXRlIFRTIC0gVHJlZVNoYXBlXG4gKiBAdGVtcGxhdGUgUkQgLSBEaWN0aW9uYXJ5IG9mIExlYWZSZWR1Y2VyLkRlZmluaXRpb25cbiAqL1xuZnVuY3Rpb24gcmVkdXhMZWF2ZXM8VFMgZXh0ZW5kcyBvYmplY3QgPSBhbnksIFJEIGV4dGVuZHMgTGVhZlJlZHVjZXIuRGVmaW5pdGlvbnMgPSB7fT4oXG4gIGluaXRpYWxTdGF0ZTogVFMsXG4gIHJlZHVjZXJzRGljdD86IFJEXG4pOiBbUmVkdWNlcjxUUywgQWN0aW9uPiwgQWN0aW9ucy5CcmFuY2g8VFMsIFRTLCBUUywgUkQ+XSB7XG4gIGNvbnN0IGxlYWZSZWR1Y2Vyc0RpY3Q6IExlYWZSZWR1Y2VyLkRpY3Rpb25hcnk8UkQ+ID0gc3RhbmRhcmRpc2VSZWR1Y2Vyc0RpY3Q8UkQ+KHJlZHVjZXJzRGljdCB8fCB7fSBhcyBSRClcblxuICBjb25zdCByZWR1Y2VyOiBSZWR1Y2VyPFRTLCBBY3Rpb24+ID0gZnVuY3Rpb24oc3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbjogQWN0aW9uKSB7XG5cbiAgICBpZiAoIWlzTGVhZkFjdGlvbihhY3Rpb24pKSByZXR1cm4gc3RhdGVcblxuICAgIGlmIChpc0NvbXBvdW5kQWN0aW9uKGFjdGlvbikpIHJldHVybiBhY3Rpb24ucGF5bG9hZC5yZWR1Y2UoXG4gICAgICByZWR1Y2VyLFxuICAgICAgc3RhdGVcbiAgICApXG5cbiAgICBjb25zdCB7IGxlYWYgfSA9IGFjdGlvbjtcbiAgICBjb25zdCB7IHBhdGggfSA9IGxlYWZcblxuICAgIGNvbnN0IHByZXZMZWFmU3RhdGUgPSBnZXRTdGF0ZShzdGF0ZSwgcGF0aClcblxuICAgIGNvbnN0IG5ld0xlYWZTdGF0ZSA9IGxlYWZSZWR1Y2VyKFxuICAgICAgcHJldkxlYWZTdGF0ZSxcbiAgICAgIGFjdGlvbixcbiAgICAgIHN0YXRlLFxuICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgbGVhZlJlZHVjZXJzRGljdFxuICAgIClcblxuICAgIHJldHVybiB1cGRhdGVTdGF0ZShzdGF0ZSwgcGF0aCwgbmV3TGVhZlN0YXRlKVxuICB9XG5cbiAgY29uc3QgYWN0aW9ucyA9IHByb3h5QWN0aW9uczxUUywgdHlwZW9mIGxlYWZSZWR1Y2Vyc0RpY3QsIFRTLCBUUywgUkQ+KGluaXRpYWxTdGF0ZSwgbGVhZlJlZHVjZXJzRGljdClcblxuICByZXR1cm4gW3JlZHVjZXIsIGFjdGlvbnNdXG59XG5cbmZ1bmN0aW9uIGlzTGVhZkFjdGlvbihhY3Rpb246IEFjdGlvbik6IGFjdGlvbiBpcyBMZWFmU3RhbmRhcmRBY3Rpb24gfCBMZWFmQ29tcG91bmRBY3Rpb24ge1xuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBhY3Rpb24ubGVhZlxufVxuXG5mdW5jdGlvbiBpc0NvbXBvdW5kQWN0aW9uKGFjdGlvbjogQWN0aW9uKTogYWN0aW9uIGlzIExlYWZDb21wb3VuZEFjdGlvbiB7XG4gIHJldHVybiBpc0xlYWZBY3Rpb24oYWN0aW9uKSAmJiBhY3Rpb24ubGVhZi5jb21wb3VuZFxufVxuXG5leHBvcnQgeyByZWR1eExlYXZlcyB9XG5leHBvcnQgZGVmYXVsdCByZWR1eExlYXZlcyJdfQ== |
\ | No newline at end of file |