@livequery/client 1.0.40 → 1.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/build/Collection.js +13 -19
  2. package/package.json +1 -1
@@ -69,32 +69,32 @@ class CollectionObservable extends rxjs_1.Observable {
69
69
  this.collection_options.realtime = realtime;
70
70
  }
71
71
  sync(stream, from_local = false) {
72
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
72
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
73
73
  const realtime = (_a = this.collection_options.realtime) !== null && _a !== void 0 ? _a : true;
74
74
  const actions = { update: false, reindex: false };
75
- for (const { data, error } of stream) {
75
+ for (const { data, error, ref } of stream) {
76
76
  // Error & paging
77
77
  if (error) {
78
78
  __classPrivateFieldGet(this, _CollectionObservable_state, "f").error = error;
79
79
  actions.update = true;
80
80
  }
81
81
  if (((_b = data === null || data === void 0 ? void 0 : data.paging) === null || _b === void 0 ? void 0 : _b.n) == 0) {
82
- __classPrivateFieldGet(this, _CollectionObservable_state, "f").has_more = (_c = data === null || data === void 0 ? void 0 : data.paging) === null || _c === void 0 ? void 0 : _c.has_more;
83
- __classPrivateFieldSet(this, _CollectionObservable_next_cursor, (_d = data === null || data === void 0 ? void 0 : data.paging) === null || _d === void 0 ? void 0 : _d.next_cursor, "f");
82
+ __classPrivateFieldGet(this, _CollectionObservable_next_cursor, "f")[ref] = (_c = data === null || data === void 0 ? void 0 : data.paging) === null || _c === void 0 ? void 0 : _c.next_cursor;
83
+ __classPrivateFieldGet(this, _CollectionObservable_state, "f").has_more = Object.values(__classPrivateFieldGet(this, _CollectionObservable_next_cursor, "f")).some(v => v && v != '#');
84
84
  __classPrivateFieldGet(this, _CollectionObservable_state, "f").loading = false;
85
85
  actions.update = true;
86
86
  }
87
87
  // Sync
88
88
  for (const change of (data === null || data === void 0 ? void 0 : data.changes) || []) {
89
- if (!((_e = change === null || change === void 0 ? void 0 : change.data) === null || _e === void 0 ? void 0 : _e.id))
89
+ if (!((_d = change === null || change === void 0 ? void 0 : change.data) === null || _d === void 0 ? void 0 : _d.id))
90
90
  continue;
91
91
  const { data: payload, type } = change;
92
92
  this.$changes.next(change);
93
- const index = (_f = __classPrivateFieldGet(this, _CollectionObservable_IdMap, "f").get(payload.id)) !== null && _f !== void 0 ? _f : -1;
93
+ const index = (_e = __classPrivateFieldGet(this, _CollectionObservable_IdMap, "f").get(payload.id)) !== null && _e !== void 0 ? _e : -1;
94
94
  if (index == -1 && type == 'added') {
95
95
  if (
96
96
  // Is first value from HTTP query
97
- ((_g = data === null || data === void 0 ? void 0 : data.paging) === null || _g === void 0 ? void 0 : _g.n) == 0
97
+ ((_f = data === null || data === void 0 ? void 0 : data.paging) === null || _f === void 0 ? void 0 : _f.n) == 0
98
98
  || (
99
99
  // Is realtime update that match filters
100
100
  (realtime || from_local) && Object
@@ -158,7 +158,7 @@ class CollectionObservable extends rxjs_1.Observable {
158
158
  }
159
159
  }
160
160
  if (actions.reindex) {
161
- __classPrivateFieldGet(this, _CollectionObservable_state, "f").items = __classPrivateFieldGet(this, _CollectionObservable_state, "f").items.sort((0, get_sort_function_1.get_sort_function)(__classPrivateFieldGet(this, _CollectionObservable_state, "f").items[0], ((_j = (_h = this.collection_options) === null || _h === void 0 ? void 0 : _h.filters) === null || _j === void 0 ? void 0 : _j._order_by) || 'created_at', (_l = (_k = this.collection_options) === null || _k === void 0 ? void 0 : _k.filters) === null || _l === void 0 ? void 0 : _l._sort));
161
+ __classPrivateFieldGet(this, _CollectionObservable_state, "f").items = __classPrivateFieldGet(this, _CollectionObservable_state, "f").items.sort((0, get_sort_function_1.get_sort_function)(__classPrivateFieldGet(this, _CollectionObservable_state, "f").items[0], ((_h = (_g = this.collection_options) === null || _g === void 0 ? void 0 : _g.filters) === null || _h === void 0 ? void 0 : _h._order_by) || 'created_at', (_k = (_j = this.collection_options) === null || _j === void 0 ? void 0 : _j.filters) === null || _k === void 0 ? void 0 : _k._sort));
162
162
  __classPrivateFieldGet(this, _CollectionObservable_IdMap, "f").clear();
163
163
  __classPrivateFieldGet(this, _CollectionObservable_state, "f").items.map((item, index) => __classPrivateFieldGet(this, _CollectionObservable_IdMap, "f").set(item.id, index));
164
164
  }
@@ -181,17 +181,7 @@ class CollectionObservable extends rxjs_1.Observable {
181
181
  .transporter
182
182
  .query(ref, Object.assign(Object.assign({}, options), { _cursor: __classPrivateFieldGet(this, _CollectionObservable_next_cursor, "f")[ref] }))));
183
183
  const reload = () => queries.map(q => q.reload());
184
- const $ = (0, rxjs_1.merge)(...queries.map((q, index) => q.pipe((0, operators_1.map)(data => (Object.assign(Object.assign({}, data), { ref: has_more_data_refs[index] })))))).pipe((0, operators_1.bufferCount)(has_more_data_refs.length), (0, operators_1.map)(list => ({
185
- error: list.find(e => e.error).error,
186
- data: {
187
- changes: list.map(l => l.data.changes).flat(2),
188
- paging: {
189
- has_more: list.some(item => { var _a, _b; return (_b = (_a = item === null || item === void 0 ? void 0 : item.data) === null || _a === void 0 ? void 0 : _a.paging) === null || _b === void 0 ? void 0 : _b.has_more; }),
190
- n: Math.max(0, ...list.map(l => { var _a, _b; return (_b = (_a = l.data) === null || _a === void 0 ? void 0 : _a.paging) === null || _b === void 0 ? void 0 : _b.n; }).filter(x => x != undefined)),
191
- next_cursor: list.reduce((p, c) => { var _a, _b; return (Object.assign(Object.assign({}, p), { [c.ref]: ((_b = (_a = c.data) === null || _a === void 0 ? void 0 : _a.paging) === null || _b === void 0 ? void 0 : _b.next_cursor) || '#' })); }, {})
192
- }
193
- }
194
- })), (0, operators_1.toArray)(), (0, operators_1.map)(data => this.sync(data)));
184
+ const $ = (0, rxjs_1.merge)(...queries.map((q, index) => q.pipe((0, operators_1.map)(data => (Object.assign(Object.assign({}, data), { ref: has_more_data_refs[index] })))))).pipe((0, operators_1.bufferTime)(500), (0, operators_1.filter)(list => list.length > 0), (0, operators_1.map)(data => this.sync(data)));
195
185
  const subscription = Object.assign($.subscribe(), { reload });
196
186
  __classPrivateFieldGet(this, _CollectionObservable_subscriptions, "f").add(subscription);
197
187
  }
@@ -222,6 +212,7 @@ class CollectionObservable extends rxjs_1.Observable {
222
212
  const { id, ref } = __classPrivateFieldGet(this, _CollectionObservable_instances, "m", _CollectionObservable_find_ref_by_id).call(this, update_payload_id);
223
213
  // Trigger local update
224
214
  this.sync([{
215
+ ref,
225
216
  data: {
226
217
  changes: [{
227
218
  data: Object.assign(Object.assign({}, payload), { id, __updating: true }),
@@ -235,6 +226,7 @@ class CollectionObservable extends rxjs_1.Observable {
235
226
  }
236
227
  catch (e) {
237
228
  this.sync([{
229
+ ref,
238
230
  data: {
239
231
  changes: [{
240
232
  data: { id, __updating: false },
@@ -251,6 +243,7 @@ class CollectionObservable extends rxjs_1.Observable {
251
243
  return __awaiter(this, void 0, void 0, function* () {
252
244
  const { id, ref } = __classPrivateFieldGet(this, _CollectionObservable_instances, "m", _CollectionObservable_find_ref_by_id).call(this, remove_document_id);
253
245
  this.sync([{
246
+ ref,
254
247
  data: {
255
248
  changes: [{
256
249
  data: { id, __removing: true },
@@ -265,6 +258,7 @@ class CollectionObservable extends rxjs_1.Observable {
265
258
  }
266
259
  catch (e) {
267
260
  this.sync([{
261
+ ref,
268
262
  data: {
269
263
  changes: [{
270
264
  data: { id, __removing: false },
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "repository": {
4
4
  "url": "https://github.com/livequery/client"
5
5
  },
6
- "version": "1.0.40",
6
+ "version": "1.0.41",
7
7
  "description": "",
8
8
  "main": "build/index.js",
9
9
  "types": "build/index.d.ts",