@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.
- package/build/Collection.js +15 -22
- package/package.json +1 -1
package/build/Collection.js
CHANGED
|
@@ -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
|
|
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,
|
|
83
|
-
|
|
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 (!((
|
|
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 = (
|
|
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
|
-
((
|
|
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], ((
|
|
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.
|
|
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
|
-
|
|
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 },
|