1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = crossSliceReducer;
|
7 |
|
8 | var _keys2 = _interopRequireDefault(require("lodash/keys"));
|
9 |
|
10 | var _get2 = _interopRequireDefault(require("lodash/get"));
|
11 |
|
12 | var _set2 = _interopRequireDefault(require("lodash/set"));
|
13 |
|
14 | var _merge2 = _interopRequireDefault(require("lodash/merge"));
|
15 |
|
16 | var _groupBy2 = _interopRequireDefault(require("lodash/groupBy"));
|
17 |
|
18 | var _values2 = _interopRequireDefault(require("lodash/values"));
|
19 |
|
20 | var _immer = _interopRequireDefault(require("immer"));
|
21 |
|
22 | var _constants = require("../constants");
|
23 |
|
24 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
25 |
|
26 | function crossSliceReducer() {
|
27 | var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
28 | var action = arguments.length > 1 ? arguments[1] : undefined;
|
29 | return (0, _immer.default)(state, function (draft) {
|
30 | switch (action.type) {
|
31 | case _constants.actionTypes.DOCUMENT_MODIFIED:
|
32 | case _constants.actionTypes.DOCUMENT_ADDED:
|
33 | case _constants.actionTypes.DOCUMENT_REMOVED:
|
34 | case _constants.actionTypes.LISTENER_RESPONSE:
|
35 | case _constants.actionTypes.UNSET_LISTENER:
|
36 | var groups = (0, _groupBy2.default)((0, _values2.default)(state.queries), function (c) {
|
37 | return c.storeAs || c.collection;
|
38 | });
|
39 | (0, _keys2.default)(groups).forEach(function (storeAs) {
|
40 | var updated = {};
|
41 | groups[storeAs].forEach(function (item) {
|
42 | return (0, _merge2.default)(updated, (0, _get2.default)(item, 'data', {}));
|
43 | });
|
44 | (0, _set2.default)(draft, ['composite', storeAs], updated);
|
45 | });
|
46 | return draft;
|
47 |
|
48 | default:
|
49 | return state;
|
50 | }
|
51 | });
|
52 | } |
\ | No newline at end of file |