UNPKG

1.77 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = crossSliceReducer;
7
8var _keys2 = _interopRequireDefault(require("lodash/keys"));
9
10var _get2 = _interopRequireDefault(require("lodash/get"));
11
12var _set2 = _interopRequireDefault(require("lodash/set"));
13
14var _merge2 = _interopRequireDefault(require("lodash/merge"));
15
16var _groupBy2 = _interopRequireDefault(require("lodash/groupBy"));
17
18var _values2 = _interopRequireDefault(require("lodash/values"));
19
20var _immer = _interopRequireDefault(require("immer"));
21
22var _constants = require("../constants");
23
24function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
26function 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