@livequery/client 1.0.40 → 1.0.42

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 +15 -22
  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
  }
@@ -175,23 +175,13 @@ class CollectionObservable extends rxjs_1.Observable {
175
175
  flush && __classPrivateFieldGet(this, _CollectionObservable_IdMap, "f").clear();
176
176
  __classPrivateFieldSet(this, _CollectionObservable_state, Object.assign(Object.assign({}, __classPrivateFieldGet(this, _CollectionObservable_state, "f")), { items: flush ? [] : __classPrivateFieldGet(this, _CollectionObservable_state, "f").items, error: null, loading: true, options }), "f");
177
177
  __classPrivateFieldGet(this, _CollectionObservable_$state, "f").next(__classPrivateFieldGet(this, _CollectionObservable_state, "f"));
178
- const has_more_data_refs = __classPrivateFieldGet(this, _CollectionObservable_refs, "f").filter(ref => __classPrivateFieldGet(this, _CollectionObservable_next_cursor, "f")[ref] != '#');
178
+ const has_more_data_refs = __classPrivateFieldGet(this, _CollectionObservable_refs, "f").filter(ref => __classPrivateFieldGet(this, _CollectionObservable_next_cursor, "f")[ref] != null && __classPrivateFieldGet(this, _CollectionObservable_next_cursor, "f")[ref] != '#');
179
179
  const queries = has_more_data_refs.map(ref => (this
180
180
  .collection_options
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
  }
@@ -203,8 +193,7 @@ class CollectionObservable extends rxjs_1.Observable {
203
193
  }
204
194
  fetch_more() {
205
195
  var _a;
206
- const options = (_a = __classPrivateFieldGet(this, _CollectionObservable_state, "f")) === null || _a === void 0 ? void 0 : _a.options;
207
- this.fetch_data(options);
196
+ this.fetch_data((_a = __classPrivateFieldGet(this, _CollectionObservable_state, "f")) === null || _a === void 0 ? void 0 : _a.options);
208
197
  }
209
198
  filter(filters) {
210
199
  this.fetch_data(filters, true);
@@ -222,6 +211,7 @@ class CollectionObservable extends rxjs_1.Observable {
222
211
  const { id, ref } = __classPrivateFieldGet(this, _CollectionObservable_instances, "m", _CollectionObservable_find_ref_by_id).call(this, update_payload_id);
223
212
  // Trigger local update
224
213
  this.sync([{
214
+ ref,
225
215
  data: {
226
216
  changes: [{
227
217
  data: Object.assign(Object.assign({}, payload), { id, __updating: true }),
@@ -235,6 +225,7 @@ class CollectionObservable extends rxjs_1.Observable {
235
225
  }
236
226
  catch (e) {
237
227
  this.sync([{
228
+ ref,
238
229
  data: {
239
230
  changes: [{
240
231
  data: { id, __updating: false },
@@ -251,6 +242,7 @@ class CollectionObservable extends rxjs_1.Observable {
251
242
  return __awaiter(this, void 0, void 0, function* () {
252
243
  const { id, ref } = __classPrivateFieldGet(this, _CollectionObservable_instances, "m", _CollectionObservable_find_ref_by_id).call(this, remove_document_id);
253
244
  this.sync([{
245
+ ref,
254
246
  data: {
255
247
  changes: [{
256
248
  data: { id, __removing: true },
@@ -265,6 +257,7 @@ class CollectionObservable extends rxjs_1.Observable {
265
257
  }
266
258
  catch (e) {
267
259
  this.sync([{
260
+ ref,
268
261
  data: {
269
262
  changes: [{
270
263
  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.42",
7
7
  "description": "",
8
8
  "main": "build/index.js",
9
9
  "types": "build/index.d.ts",