UNPKG

6.39 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.reduxLeaves = void 0;
7
8var _leafReducer = require("./leafReducer");
9
10var _standardise = _interopRequireDefault(require("./reducersDict/standardise"));
11
12var _utils = require("./utils");
13
14var _proxy = _interopRequireDefault(require("./actions/proxy"));
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
18var reduxLeaves = function reduxLeaves(initialState) {
19 var reducersDict = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
20 var leafReducersDict = (0, _standardise["default"])(reducersDict);
21
22 var reducer = function reducer() {
23 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
24 var action = arguments.length > 1 ? arguments[1] : undefined;
25 if (!isLeafAction(action)) return state;
26 if (isLCA(action)) return action.payload.reduce(reducer, state);
27 var leaf = action.leaf;
28 var path = leaf.path; // const prevLeafState = getState(draftState, path)
29
30 var prevLeafState = (0, _utils.getState)(state, path);
31 var newLeafState = (0, _leafReducer.leafReducer)(prevLeafState, action, state, initialState, leafReducersDict);
32 return (0, _utils.updateState)(state, path, newLeafState);
33 };
34
35 var actions = new _proxy["default"](initialState, leafReducersDict);
36 return [reducer, actions];
37};
38
39exports.reduxLeaves = reduxLeaves;
40
41function isLeafAction(action) {
42 // @ts-ignore
43 return action.leaf;
44}
45
46function isLCA(action) {
47 return isLeafAction(action) && action.leaf.compound;
48}
49
50function isLSA(action) {
51 return isLeafAction(action) && !isLCA(action);
52}
53//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWR1eExlYXZlcy50cyJdLCJuYW1lcyI6WyJyZWR1eExlYXZlcyIsImluaXRpYWxTdGF0ZSIsInJlZHVjZXJzRGljdCIsImxlYWZSZWR1Y2Vyc0RpY3QiLCJyZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJpc0xlYWZBY3Rpb24iLCJpc0xDQSIsInBheWxvYWQiLCJyZWR1Y2UiLCJsZWFmIiwicGF0aCIsInByZXZMZWFmU3RhdGUiLCJuZXdMZWFmU3RhdGUiLCJhY3Rpb25zIiwiQWN0aW9uc1Byb3h5IiwiY29tcG91bmQiLCJpc0xTQSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUlBOzs7O0FBSU8sSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBZ0JDLFlBQWhCLEVBQW1KO0FBQUEsTUFBbEhDLFlBQWtILHVFQUFuRyxFQUFtRztBQUM1SyxNQUFNQyxnQkFBZ0IsR0FBRyw2QkFBd0JELFlBQXhCLENBQXpCOztBQUVBLE1BQU1FLE9BQW1GLEdBQUcsU0FBdEZBLE9BQXNGLEdBQXFHO0FBQUEsUUFBNUZDLEtBQTRGLHVFQUFwRkosWUFBb0Y7QUFBQSxRQUF0RUssTUFBc0U7QUFFL0wsUUFBSSxDQUFDQyxZQUFZLENBQUNELE1BQUQsQ0FBakIsRUFBMkIsT0FBT0QsS0FBUDtBQUUzQixRQUFJRyxLQUFLLENBQUNGLE1BQUQsQ0FBVCxFQUFtQixPQUFPQSxNQUFNLENBQUNHLE9BQVAsQ0FBZUMsTUFBZixDQUN4Qk4sT0FEd0IsRUFFeEJDLEtBRndCLENBQVA7QUFKNEssUUFTdkxNLElBVHVMLEdBUzlLTCxNQVQ4SyxDQVN2TEssSUFUdUw7QUFBQSxRQVV2TEMsSUFWdUwsR0FVOUtELElBVjhLLENBVXZMQyxJQVZ1TCxFQVkvTDs7QUFDQSxRQUFNQyxhQUFhLEdBQUcscUJBQVNSLEtBQVQsRUFBZ0JPLElBQWhCLENBQXRCO0FBRUEsUUFBTUUsWUFBWSxHQUFHLDhCQUNuQkQsYUFEbUIsRUFFbkJQLE1BRm1CLEVBR25CRCxLQUhtQixFQUluQkosWUFKbUIsRUFLbkJFLGdCQUxtQixDQUFyQjtBQVFBLFdBQU8sd0JBQVlFLEtBQVosRUFBbUJPLElBQW5CLEVBQXlCRSxZQUF6QixDQUFQO0FBQ0QsR0F4QkQ7O0FBMEJBLE1BQU1DLE9BQU8sR0FBRyxJQUFJQyxpQkFBSixDQUFpQmYsWUFBakIsRUFBK0JFLGdCQUEvQixDQUFoQjtBQUVBLFNBQU8sQ0FBQ0MsT0FBRCxFQUFVVyxPQUFWLENBQVA7QUFDRCxDQWhDTTs7OztBQWtDUCxTQUFTUixZQUFULENBQXNCRCxNQUF0QixFQUErSTtBQUM3STtBQUNBLFNBQU9BLE1BQU0sQ0FBQ0ssSUFBZDtBQUNEOztBQUVELFNBQVNILEtBQVQsQ0FBZUYsTUFBZixFQUFtSDtBQUNqSCxTQUFPQyxZQUFZLENBQUNELE1BQUQsQ0FBWixJQUF3QkEsTUFBTSxDQUFDSyxJQUFQLENBQVlNLFFBQTNDO0FBQ0Q7O0FBRUQsU0FBU0MsS0FBVCxDQUFlWixNQUFmLEVBQW1IO0FBQ2pILFNBQU9DLFlBQVksQ0FBQ0QsTUFBRCxDQUFaLElBQXdCLENBQUNFLEtBQUssQ0FBQ0YsTUFBRCxDQUFyQztBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGVhZlJlZHVjZXIgfSBmcm9tICcuL2xlYWZSZWR1Y2VyJztcbmltcG9ydCBzdGFuZGFyZGlzZVJlZHVjZXJzRGljdCBmcm9tICcuL3JlZHVjZXJzRGljdC9zdGFuZGFyZGlzZSc7XG5pbXBvcnQgeyBnZXRTdGF0ZSwgdXBkYXRlU3RhdGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBMZWFmU3RhbmRhcmRBY3Rpb24gZnJvbSAnLi90eXBlcy9BY3Rpb25zL0xTQSc7XG5pbXBvcnQgRGljdCBmcm9tICcuL3R5cGVzL0RpY3QnO1xuaW1wb3J0IHsgUmVkdWNlciB9IGZyb20gJ3JlZHV4JztcbmltcG9ydCBBY3Rpb25zUHJveHkgZnJvbSAnLi9hY3Rpb25zL3Byb3h5JztcbmltcG9ydCBMZWFmQ29tcG91bmRBY3Rpb24gZnJvbSAnLi90eXBlcy9BY3Rpb25zL0xDQSc7XG5pbXBvcnQgRmx1eFN0YW5kYXJkQWN0aW9uIGZyb20gJy4vdHlwZXMvQWN0aW9ucy9GU0EnO1xuXG5leHBvcnQgY29uc3QgcmVkdXhMZWF2ZXMgPSA8VCA9IERpY3Q8YW55Pj4oaW5pdGlhbFN0YXRlOiBULCByZWR1Y2Vyc0RpY3QgPSB7fSk6IFtSZWR1Y2VyPGFueSwgRmx1eFN0YW5kYXJkQWN0aW9uIHwgTGVhZlN0YW5kYXJkQWN0aW9uIHwgTGVhZkNvbXBvdW5kQWN0aW9uPiwgQWN0aW9uc1Byb3h5XSA9PiB7XG4gIGNvbnN0IGxlYWZSZWR1Y2Vyc0RpY3QgPSBzdGFuZGFyZGlzZVJlZHVjZXJzRGljdChyZWR1Y2Vyc0RpY3QpXG5cbiAgY29uc3QgcmVkdWNlcjogUmVkdWNlcjxhbnksIEZsdXhTdGFuZGFyZEFjdGlvbiB8IExlYWZTdGFuZGFyZEFjdGlvbiB8IExlYWZDb21wb3VuZEFjdGlvbj4gPSBmdW5jdGlvbihzdGF0ZSA9IGluaXRpYWxTdGF0ZSwgYWN0aW9uOiBGbHV4U3RhbmRhcmRBY3Rpb24gfCBMZWFmU3RhbmRhcmRBY3Rpb24gfCBMZWFmQ29tcG91bmRBY3Rpb24pIHtcblxuICAgIGlmICghaXNMZWFmQWN0aW9uKGFjdGlvbikpIHJldHVybiBzdGF0ZVxuXG4gICAgaWYgKGlzTENBKGFjdGlvbikpIHJldHVybiBhY3Rpb24ucGF5bG9hZC5yZWR1Y2UoXG4gICAgICByZWR1Y2VyLFxuICAgICAgc3RhdGVcbiAgICApXG5cbiAgICBjb25zdCB7IGxlYWYgfSA9IGFjdGlvbjtcbiAgICBjb25zdCB7IHBhdGggfSA9IGxlYWZcblxuICAgIC8vIGNvbnN0IHByZXZMZWFmU3RhdGUgPSBnZXRTdGF0ZShkcmFmdFN0YXRlLCBwYXRoKVxuICAgIGNvbnN0IHByZXZMZWFmU3RhdGUgPSBnZXRTdGF0ZShzdGF0ZSwgcGF0aClcblxuICAgIGNvbnN0IG5ld0xlYWZTdGF0ZSA9IGxlYWZSZWR1Y2VyKFxuICAgICAgcHJldkxlYWZTdGF0ZSxcbiAgICAgIGFjdGlvbixcbiAgICAgIHN0YXRlLFxuICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgbGVhZlJlZHVjZXJzRGljdFxuICAgIClcblxuICAgIHJldHVybiB1cGRhdGVTdGF0ZShzdGF0ZSwgcGF0aCwgbmV3TGVhZlN0YXRlKVxuICB9XG5cbiAgY29uc3QgYWN0aW9ucyA9IG5ldyBBY3Rpb25zUHJveHkoaW5pdGlhbFN0YXRlLCBsZWFmUmVkdWNlcnNEaWN0KVxuXG4gIHJldHVybiBbcmVkdWNlciwgYWN0aW9uc11cbn1cblxuZnVuY3Rpb24gaXNMZWFmQWN0aW9uKGFjdGlvbjogRmx1eFN0YW5kYXJkQWN0aW9uIHwgTGVhZlN0YW5kYXJkQWN0aW9uIHwgTGVhZkNvbXBvdW5kQWN0aW9uKTogYWN0aW9uIGlzIExlYWZTdGFuZGFyZEFjdGlvbiB8IExlYWZDb21wb3VuZEFjdGlvbiB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIGFjdGlvbi5sZWFmXG59XG5cbmZ1bmN0aW9uIGlzTENBKGFjdGlvbjogRmx1eFN0YW5kYXJkQWN0aW9uIHwgTGVhZlN0YW5kYXJkQWN0aW9uIHwgTGVhZkNvbXBvdW5kQWN0aW9uKTogYWN0aW9uIGlzIExlYWZDb21wb3VuZEFjdGlvbiB7XG4gIHJldHVybiBpc0xlYWZBY3Rpb24oYWN0aW9uKSAmJiBhY3Rpb24ubGVhZi5jb21wb3VuZFxufVxuXG5mdW5jdGlvbiBpc0xTQShhY3Rpb246IEZsdXhTdGFuZGFyZEFjdGlvbiB8IExlYWZTdGFuZGFyZEFjdGlvbiB8IExlYWZDb21wb3VuZEFjdGlvbik6IGFjdGlvbiBpcyBMZWFmU3RhbmRhcmRBY3Rpb24ge1xuICByZXR1cm4gaXNMZWFmQWN0aW9uKGFjdGlvbikgJiYgIWlzTENBKGFjdGlvbilcbn0iXX0=
\No newline at end of file