@signalium/query 1.0.9 → 1.0.10
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/CHANGELOG.md +10 -0
- package/dist/cjs/EntityMap.js +20 -1
- package/dist/cjs/EntityMap.js.map +1 -1
- package/dist/cjs/QueryClient.js +27 -3
- package/dist/cjs/QueryClient.js.map +1 -1
- package/dist/cjs/QueryResult.js +410 -33
- package/dist/cjs/QueryResult.js.map +1 -1
- package/dist/cjs/QueryStore.js +78 -5
- package/dist/cjs/QueryStore.js.map +1 -1
- package/dist/cjs/errors.js +6 -0
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/parseEntities.js +14 -2
- package/dist/cjs/parseEntities.js.map +1 -1
- package/dist/cjs/proxy.js +22 -5
- package/dist/cjs/proxy.js.map +1 -1
- package/dist/cjs/query.js +64 -1
- package/dist/cjs/query.js.map +1 -1
- package/dist/cjs/react/use-query.js.map +1 -1
- package/dist/cjs/stores/async.js.map +1 -1
- package/dist/cjs/stores/sync.js.map +1 -1
- package/dist/cjs/typeDefs.js +103 -3
- package/dist/cjs/typeDefs.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/EntityMap.d.ts +3 -1
- package/dist/esm/EntityMap.d.ts.map +1 -1
- package/dist/esm/EntityMap.js +20 -1
- package/dist/esm/EntityMap.js.map +1 -1
- package/dist/esm/QueryClient.d.ts +47 -12
- package/dist/esm/QueryClient.d.ts.map +1 -1
- package/dist/esm/QueryClient.js +25 -3
- package/dist/esm/QueryClient.js.map +1 -1
- package/dist/esm/QueryResult.d.ts +34 -6
- package/dist/esm/QueryResult.d.ts.map +1 -1
- package/dist/esm/QueryResult.js +414 -37
- package/dist/esm/QueryResult.js.map +1 -1
- package/dist/esm/QueryStore.d.ts +17 -9
- package/dist/esm/QueryStore.d.ts.map +1 -1
- package/dist/esm/QueryStore.js +75 -4
- package/dist/esm/QueryStore.js.map +1 -1
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +6 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/parseEntities.d.ts.map +1 -1
- package/dist/esm/parseEntities.js +14 -2
- package/dist/esm/parseEntities.js.map +1 -1
- package/dist/esm/proxy.d.ts +1 -0
- package/dist/esm/proxy.d.ts.map +1 -1
- package/dist/esm/proxy.js +22 -6
- package/dist/esm/proxy.js.map +1 -1
- package/dist/esm/query.d.ts +27 -11
- package/dist/esm/query.d.ts.map +1 -1
- package/dist/esm/query.js +64 -1
- package/dist/esm/query.js.map +1 -1
- package/dist/esm/react/use-query.d.ts +2 -2
- package/dist/esm/react/use-query.d.ts.map +1 -1
- package/dist/esm/react/use-query.js.map +1 -1
- package/dist/esm/stores/async.d.ts +3 -3
- package/dist/esm/stores/async.d.ts.map +1 -1
- package/dist/esm/stores/async.js.map +1 -1
- package/dist/esm/stores/sync.d.ts +3 -3
- package/dist/esm/stores/sync.d.ts.map +1 -1
- package/dist/esm/stores/sync.js.map +1 -1
- package/dist/esm/typeDefs.d.ts +30 -0
- package/dist/esm/typeDefs.d.ts.map +1 -1
- package/dist/esm/typeDefs.js +101 -2
- package/dist/esm/typeDefs.js.map +1 -1
- package/dist/esm/types.d.ts +68 -23
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/package.json +3 -3
package/dist/cjs/QueryResult.js
CHANGED
|
@@ -7,6 +7,249 @@ const types_js_1 = require("./types.js");
|
|
|
7
7
|
const proxy_js_1 = require("./proxy.js");
|
|
8
8
|
const parseEntities_js_1 = require("./parseEntities.js");
|
|
9
9
|
const typeDefs_js_1 = require("./typeDefs.js");
|
|
10
|
+
// ======================================================
|
|
11
|
+
// QueryResultExtra - Manages stream orphans and optimistic inserts
|
|
12
|
+
// ======================================================
|
|
13
|
+
/**
|
|
14
|
+
* Manages extra data for a query result: stream orphans and optimistic inserts.
|
|
15
|
+
* Created lazily when first needed.
|
|
16
|
+
*/
|
|
17
|
+
class QueryResultExtra {
|
|
18
|
+
_streamOrphansNotifier = undefined;
|
|
19
|
+
_streamOrphans = undefined;
|
|
20
|
+
_optimisticInsertsNotifier = undefined;
|
|
21
|
+
_optimisticInserts = undefined;
|
|
22
|
+
onChanged;
|
|
23
|
+
constructor(onChanged) {
|
|
24
|
+
this.onChanged = onChanged;
|
|
25
|
+
}
|
|
26
|
+
get streamOrphansNotifier() {
|
|
27
|
+
return this._streamOrphansNotifier ?? (this._streamOrphansNotifier = (0, signalium_1.notifier)());
|
|
28
|
+
}
|
|
29
|
+
get optimisticInsertsNotifier() {
|
|
30
|
+
return this._optimisticInsertsNotifier ?? (this._optimisticInsertsNotifier = (0, signalium_1.notifier)());
|
|
31
|
+
}
|
|
32
|
+
get streamOrphans() {
|
|
33
|
+
return this._streamOrphans ?? (this._streamOrphans = new Set());
|
|
34
|
+
}
|
|
35
|
+
get optimisticInserts() {
|
|
36
|
+
return this._optimisticInserts ?? (this._optimisticInserts = new Set());
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Returns the QueryExtra object for public API consumption.
|
|
40
|
+
* Consumes the notifiers to establish reactive tracking.
|
|
41
|
+
*/
|
|
42
|
+
getExtra() {
|
|
43
|
+
this.streamOrphansNotifier.consume();
|
|
44
|
+
this.optimisticInsertsNotifier.consume();
|
|
45
|
+
return {
|
|
46
|
+
streamOrphans: this.streamOrphans,
|
|
47
|
+
optimisticInserts: this.optimisticInserts,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Add a stream orphan entity.
|
|
52
|
+
* Returns true if the orphan was added (not a duplicate).
|
|
53
|
+
*/
|
|
54
|
+
addStreamOrphan(entity) {
|
|
55
|
+
const orphans = this.streamOrphans;
|
|
56
|
+
const sizeBefore = orphans.size;
|
|
57
|
+
orphans.add(entity);
|
|
58
|
+
if (orphans.size !== sizeBefore) {
|
|
59
|
+
this.streamOrphansNotifier.notify();
|
|
60
|
+
// Check if this orphan was an optimistic insert - if so, remove it
|
|
61
|
+
const proxyId = (0, proxy_js_1.getProxyId)(entity);
|
|
62
|
+
if (proxyId !== undefined) {
|
|
63
|
+
this.removeOptimisticInsertById(proxyId);
|
|
64
|
+
}
|
|
65
|
+
this.onChanged();
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Add an optimistic insert entity.
|
|
72
|
+
* Returns true if the insert was added (not a duplicate).
|
|
73
|
+
*/
|
|
74
|
+
addOptimisticInsert(entity) {
|
|
75
|
+
const inserts = this.optimisticInserts;
|
|
76
|
+
const sizeBefore = inserts.size;
|
|
77
|
+
inserts.add(entity);
|
|
78
|
+
if (inserts.size !== sizeBefore) {
|
|
79
|
+
this.optimisticInsertsNotifier.notify();
|
|
80
|
+
this.onChanged();
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Remove an optimistic insert by its entity.
|
|
87
|
+
* Returns true if the insert was removed.
|
|
88
|
+
*/
|
|
89
|
+
removeOptimisticInsert(entity) {
|
|
90
|
+
const proxyId = (0, proxy_js_1.getProxyId)(entity);
|
|
91
|
+
if (proxyId === undefined) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
return this.removeOptimisticInsertById(proxyId);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Remove an optimistic insert by proxy ID.
|
|
98
|
+
*/
|
|
99
|
+
removeOptimisticInsertById(proxyId) {
|
|
100
|
+
const inserts = this._optimisticInserts;
|
|
101
|
+
if (inserts === undefined || inserts.size === 0) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
for (const existing of inserts) {
|
|
105
|
+
if ((0, proxy_js_1.getProxyId)(existing) === proxyId) {
|
|
106
|
+
inserts.delete(existing);
|
|
107
|
+
this.optimisticInsertsNotifier.notify();
|
|
108
|
+
this.onChanged();
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Check if a proxy ID exists in stream orphans.
|
|
116
|
+
*/
|
|
117
|
+
hasOrphanWithId(proxyId) {
|
|
118
|
+
const orphans = this._streamOrphans;
|
|
119
|
+
if (orphans === undefined) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
for (const orphan of orphans) {
|
|
123
|
+
if ((0, proxy_js_1.getProxyId)(orphan) === proxyId) {
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Reconcile orphans and optimistic inserts against the main response entity refs.
|
|
131
|
+
* Removes any that now exist in the main response.
|
|
132
|
+
*/
|
|
133
|
+
reconcile(allRefIds) {
|
|
134
|
+
// Check stream orphans for entities that now exist in main response
|
|
135
|
+
const orphans = this._streamOrphans;
|
|
136
|
+
if (orphans !== undefined && orphans.size > 0) {
|
|
137
|
+
let orphansChanged = false;
|
|
138
|
+
for (const orphan of orphans) {
|
|
139
|
+
const entityRefId = (0, proxy_js_1.getProxyId)(orphan);
|
|
140
|
+
if (entityRefId !== undefined && allRefIds.has(entityRefId)) {
|
|
141
|
+
orphans.delete(orphan);
|
|
142
|
+
orphansChanged = true;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (orphansChanged) {
|
|
146
|
+
this.streamOrphansNotifier.notify();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Check optimistic inserts for entities that now exist in main response or stream orphans
|
|
150
|
+
const inserts = this._optimisticInserts;
|
|
151
|
+
if (inserts !== undefined && inserts.size > 0) {
|
|
152
|
+
let insertsChanged = false;
|
|
153
|
+
for (const insert of inserts) {
|
|
154
|
+
const entityRefId = (0, proxy_js_1.getProxyId)(insert);
|
|
155
|
+
if (entityRefId !== undefined) {
|
|
156
|
+
// Remove if entity is now in main response
|
|
157
|
+
if (allRefIds.has(entityRefId)) {
|
|
158
|
+
inserts.delete(insert);
|
|
159
|
+
insertsChanged = true;
|
|
160
|
+
}
|
|
161
|
+
// Also remove if entity is now in stream orphans
|
|
162
|
+
else if (orphans !== undefined && orphans.has(insert)) {
|
|
163
|
+
inserts.delete(insert);
|
|
164
|
+
insertsChanged = true;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (insertsChanged) {
|
|
169
|
+
this.optimisticInsertsNotifier.notify();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Clear all stream orphans and optimistic inserts.
|
|
175
|
+
* Called on refetch.
|
|
176
|
+
*/
|
|
177
|
+
clear() {
|
|
178
|
+
let changed = false;
|
|
179
|
+
if (this._streamOrphans !== undefined && this._streamOrphans.size > 0) {
|
|
180
|
+
this._streamOrphans = undefined;
|
|
181
|
+
this.streamOrphansNotifier.notify();
|
|
182
|
+
changed = true;
|
|
183
|
+
}
|
|
184
|
+
if (this._optimisticInserts !== undefined && this._optimisticInserts.size > 0) {
|
|
185
|
+
this._optimisticInserts = undefined;
|
|
186
|
+
this.optimisticInsertsNotifier.notify();
|
|
187
|
+
changed = true;
|
|
188
|
+
}
|
|
189
|
+
if (changed) {
|
|
190
|
+
this.onChanged();
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Load extra data from cached values.
|
|
195
|
+
*/
|
|
196
|
+
loadFromCache(cachedExtra, queryClient, streamShape, optimisticInsertsShape) {
|
|
197
|
+
if (cachedExtra.streamOrphanRefs && cachedExtra.streamOrphanRefs.length > 0 && streamShape) {
|
|
198
|
+
const orphans = this.streamOrphans;
|
|
199
|
+
for (const refId of cachedExtra.streamOrphanRefs) {
|
|
200
|
+
const entityRecord = queryClient.hydrateEntity(refId, streamShape);
|
|
201
|
+
orphans.add(entityRecord.proxy);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (cachedExtra.optimisticInsertRefs && cachedExtra.optimisticInsertRefs.length > 0 && optimisticInsertsShape) {
|
|
205
|
+
const inserts = this.optimisticInserts;
|
|
206
|
+
for (const refId of cachedExtra.optimisticInsertRefs) {
|
|
207
|
+
const entityRecord = queryClient.hydrateEntity(refId, optimisticInsertsShape);
|
|
208
|
+
inserts.add(entityRecord.proxy);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Get extra data for persistence (converts Sets to arrays of entity ref IDs).
|
|
214
|
+
*/
|
|
215
|
+
getForPersistence() {
|
|
216
|
+
const orphans = this._streamOrphans;
|
|
217
|
+
const inserts = this._optimisticInserts;
|
|
218
|
+
if ((orphans === undefined || orphans.size === 0) && (inserts === undefined || inserts.size === 0)) {
|
|
219
|
+
return undefined;
|
|
220
|
+
}
|
|
221
|
+
const extra = {};
|
|
222
|
+
if (orphans !== undefined && orphans.size > 0) {
|
|
223
|
+
extra.streamOrphanRefs = [];
|
|
224
|
+
for (const orphan of orphans) {
|
|
225
|
+
const refId = (0, proxy_js_1.getProxyId)(orphan);
|
|
226
|
+
if (refId !== undefined) {
|
|
227
|
+
extra.streamOrphanRefs.push(refId);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (inserts !== undefined && inserts.size > 0) {
|
|
232
|
+
extra.optimisticInsertRefs = [];
|
|
233
|
+
for (const insert of inserts) {
|
|
234
|
+
const refId = (0, proxy_js_1.getProxyId)(insert);
|
|
235
|
+
if (refId !== undefined) {
|
|
236
|
+
extra.optimisticInsertRefs.push(refId);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return extra;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Check if there's any extra data.
|
|
244
|
+
*/
|
|
245
|
+
get hasData() {
|
|
246
|
+
return ((this._streamOrphans !== undefined && this._streamOrphans.size > 0) ||
|
|
247
|
+
(this._optimisticInserts !== undefined && this._optimisticInserts.size > 0));
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
// ======================================================
|
|
251
|
+
// QueryResultImpl
|
|
252
|
+
// ======================================================
|
|
10
253
|
/**
|
|
11
254
|
* QueryResult wraps a DiscriminatedReactivePromise and adds additional functionality
|
|
12
255
|
* like refetch, while forwarding all the base relay properties.
|
|
@@ -22,10 +265,12 @@ class QueryResultImpl {
|
|
|
22
265
|
updatedAt = undefined;
|
|
23
266
|
params = undefined;
|
|
24
267
|
refIds = undefined;
|
|
268
|
+
allNestedRefIdsSignal = undefined;
|
|
25
269
|
refetchPromise = undefined;
|
|
26
270
|
fetchMorePromise = undefined;
|
|
27
271
|
attemptCount = 0;
|
|
28
272
|
unsubscribe = undefined;
|
|
273
|
+
streamUnsubscribe = undefined;
|
|
29
274
|
relay;
|
|
30
275
|
_relayState = undefined;
|
|
31
276
|
wasOffline = false;
|
|
@@ -36,10 +281,14 @@ class QueryResultImpl {
|
|
|
36
281
|
}
|
|
37
282
|
return relayState;
|
|
38
283
|
}
|
|
284
|
+
_extra = undefined;
|
|
285
|
+
get extraData() {
|
|
286
|
+
return this._extra ?? (this._extra = new QueryResultExtra(() => this.persistExtraData()));
|
|
287
|
+
}
|
|
39
288
|
_nextPageParams = undefined;
|
|
40
289
|
get nextPageParams() {
|
|
41
|
-
// Streams don't have pagination
|
|
42
|
-
if (this.def.type
|
|
290
|
+
// Streams and non-infinite queries don't have pagination
|
|
291
|
+
if (this.def.type !== "infiniteQuery" /* QueryType.InfiniteQuery */) {
|
|
43
292
|
return null;
|
|
44
293
|
}
|
|
45
294
|
let params = this._nextPageParams;
|
|
@@ -87,10 +336,12 @@ class QueryResultImpl {
|
|
|
87
336
|
// Store initial offline state
|
|
88
337
|
this.wasOffline = !isOnline;
|
|
89
338
|
if (this.initialized) {
|
|
90
|
-
|
|
339
|
+
// For any query with streams, resubscribe on reactivation
|
|
340
|
+
if (this.def.type === "stream" /* QueryType.Stream */ ||
|
|
341
|
+
this.def.stream) {
|
|
91
342
|
this.setupSubscription();
|
|
92
343
|
}
|
|
93
|
-
|
|
344
|
+
if (this.def.type !== "stream" /* QueryType.Stream */) {
|
|
94
345
|
// Check if we just came back online
|
|
95
346
|
if (!this.wasOffline && isOnline) {
|
|
96
347
|
// We're back online - check if we should refresh
|
|
@@ -114,9 +365,13 @@ class QueryResultImpl {
|
|
|
114
365
|
// Return deactivation callback
|
|
115
366
|
return {
|
|
116
367
|
update: () => {
|
|
117
|
-
// For streams, unsubscribe and resubscribe to re-establish connection
|
|
118
|
-
if (this.def.type === "stream" /* QueryType.Stream */
|
|
368
|
+
// For any query with streams, unsubscribe and resubscribe to re-establish connection
|
|
369
|
+
if (this.def.type === "stream" /* QueryType.Stream */ ||
|
|
370
|
+
this.def.stream) {
|
|
119
371
|
this.setupSubscription();
|
|
372
|
+
}
|
|
373
|
+
// For StreamQuery, we're done - it doesn't react to network status
|
|
374
|
+
if (this.def.type === "stream" /* QueryType.Stream */) {
|
|
120
375
|
return;
|
|
121
376
|
}
|
|
122
377
|
// Network status changed - check if we should react
|
|
@@ -135,14 +390,17 @@ class QueryResultImpl {
|
|
|
135
390
|
},
|
|
136
391
|
deactivate: () => {
|
|
137
392
|
// Last subscriber left, deactivate refetch and schedule memory eviction
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
393
|
+
// Unsubscribe from any active streams
|
|
394
|
+
if (this.unsubscribe) {
|
|
395
|
+
this.unsubscribe();
|
|
396
|
+
this.unsubscribe = undefined;
|
|
397
|
+
}
|
|
398
|
+
if (this.streamUnsubscribe) {
|
|
399
|
+
this.streamUnsubscribe();
|
|
400
|
+
this.streamUnsubscribe = undefined;
|
|
144
401
|
}
|
|
145
|
-
|
|
402
|
+
// Remove from refetch manager if configured
|
|
403
|
+
if (this.def.type !== "stream" /* QueryType.Stream */ && this.def.cache?.refetchInterval) {
|
|
146
404
|
this.queryClient.refetchManager.removeQuery(this);
|
|
147
405
|
}
|
|
148
406
|
// Schedule removal from memory using the global eviction manager
|
|
@@ -204,6 +462,28 @@ class QueryResultImpl {
|
|
|
204
462
|
// ======================================================
|
|
205
463
|
// Internal fetch methods
|
|
206
464
|
// ======================================================
|
|
465
|
+
getAllEntityRefs() {
|
|
466
|
+
let allNestedRefIdsSignal = this.allNestedRefIdsSignal;
|
|
467
|
+
if (!allNestedRefIdsSignal) {
|
|
468
|
+
const queryClient = this.queryClient;
|
|
469
|
+
this.allNestedRefIdsSignal = allNestedRefIdsSignal = (0, signalium_1.reactiveSignal)(() => {
|
|
470
|
+
// Entangle the relay value. Whenever the relay value is updated, the
|
|
471
|
+
// allNestedRefIdsSignal will be updated, so no need for a second signal.
|
|
472
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
473
|
+
this.relay.value;
|
|
474
|
+
const allRefIds = new Set();
|
|
475
|
+
if (this.refIds !== undefined) {
|
|
476
|
+
for (const refId of this.refIds) {
|
|
477
|
+
queryClient.getNestedEntityRefIds(refId, allRefIds);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
// Reconcile extra data against the main response
|
|
481
|
+
this.extraData.reconcile(allRefIds);
|
|
482
|
+
return allRefIds;
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
return allNestedRefIdsSignal.value;
|
|
486
|
+
}
|
|
207
487
|
/**
|
|
208
488
|
* Initialize the query by loading from cache and fetching if stale
|
|
209
489
|
*/
|
|
@@ -214,20 +494,30 @@ class QueryResultImpl {
|
|
|
214
494
|
// Load from cache first
|
|
215
495
|
const cached = await this.queryClient.loadCachedQuery(this.def, this.queryKey);
|
|
216
496
|
if (cached !== undefined) {
|
|
497
|
+
// Set the cached timestamp
|
|
498
|
+
this.updatedAt = cached.updatedAt;
|
|
499
|
+
// Set the cached reference IDs
|
|
500
|
+
this.refIds = cached.refIds;
|
|
501
|
+
// Load extra data (stream orphans and optimistic inserts) BEFORE setting state.value
|
|
502
|
+
// because setting state.value resolves the relay
|
|
503
|
+
if (cached.extra) {
|
|
504
|
+
const def = this.def;
|
|
505
|
+
this.extraData.loadFromCache(cached.extra, this.queryClient, def.stream?.shape, def.optimisticInserts?.shape);
|
|
506
|
+
}
|
|
507
|
+
// Set the value last - this resolves the relay
|
|
217
508
|
const shape = this.def.shape;
|
|
218
509
|
state.value =
|
|
219
510
|
shape instanceof typeDefs_js_1.ValidatorDef
|
|
220
511
|
? (0, parseEntities_js_1.parseEntities)(cached.value, shape, this.queryClient, new Set())
|
|
221
512
|
: (0, proxy_js_1.parseValue)(cached.value, shape, this.def.id);
|
|
222
|
-
// Set the cached timestamp
|
|
223
|
-
this.updatedAt = cached.updatedAt;
|
|
224
|
-
// Set the cached reference IDs
|
|
225
|
-
this.refIds = cached.refIds;
|
|
226
513
|
}
|
|
227
|
-
|
|
514
|
+
// Setup subscriptions (handles both StreamQuery and Query/InfiniteQuery with stream)
|
|
515
|
+
if (this.def.type === "stream" /* QueryType.Stream */ ||
|
|
516
|
+
this.def.stream) {
|
|
228
517
|
this.setupSubscription();
|
|
229
518
|
}
|
|
230
|
-
|
|
519
|
+
// For non-stream queries, fetch if stale or no cache
|
|
520
|
+
if (this.def.type !== "stream" /* QueryType.Stream */) {
|
|
231
521
|
if (cached !== undefined) {
|
|
232
522
|
// Check if data is stale
|
|
233
523
|
if (this.isStale) {
|
|
@@ -247,22 +537,43 @@ class QueryResultImpl {
|
|
|
247
537
|
}
|
|
248
538
|
}
|
|
249
539
|
/**
|
|
250
|
-
* Handle stream updates
|
|
251
|
-
*
|
|
540
|
+
* Handle stream updates. This method handles both StreamQuery and Query/InfiniteQuery with stream options.
|
|
541
|
+
* - For StreamQuery: directly updates the relay state with the entity
|
|
542
|
+
* - For Query/InfiniteQuery with stream: updates entities in response or adds to orphans
|
|
252
543
|
*/
|
|
253
544
|
setupSubscription() {
|
|
254
545
|
this.unsubscribe?.();
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
546
|
+
let subscribeFn;
|
|
547
|
+
let shapeDef;
|
|
548
|
+
if (this.def.type === "stream" /* QueryType.Stream */) {
|
|
549
|
+
shapeDef = this.def.shape;
|
|
550
|
+
subscribeFn = this.def.subscribeFn;
|
|
551
|
+
}
|
|
552
|
+
else {
|
|
553
|
+
const stream = this.def.stream;
|
|
554
|
+
if (!stream) {
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
557
|
+
shapeDef = stream.shape;
|
|
558
|
+
subscribeFn = stream.subscribeFn;
|
|
559
|
+
}
|
|
560
|
+
this.unsubscribe = subscribeFn(this.queryClient.getContext(), this.params, update => {
|
|
561
|
+
const parsedData = (0, parseEntities_js_1.parseObjectEntities)(update, shapeDef, this.queryClient);
|
|
260
562
|
// Update the relay state
|
|
261
|
-
this.
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
563
|
+
if (this.def.type === "stream" /* QueryType.Stream */) {
|
|
564
|
+
this.relayState.value = parsedData;
|
|
565
|
+
this.updatedAt = Date.now();
|
|
566
|
+
// Cache the data
|
|
567
|
+
this.queryClient.saveQueryData(this.def, this.queryKey, parsedData, this.updatedAt);
|
|
568
|
+
}
|
|
569
|
+
else {
|
|
570
|
+
const allRefIds = this.getAllEntityRefs();
|
|
571
|
+
const proxyId = (0, proxy_js_1.getProxyId)(parsedData);
|
|
572
|
+
// Add to orphans if not in main response
|
|
573
|
+
if (proxyId !== undefined && !allRefIds.has(proxyId)) {
|
|
574
|
+
this.extraData.addStreamOrphan(parsedData);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
266
577
|
});
|
|
267
578
|
}
|
|
268
579
|
/**
|
|
@@ -289,7 +600,7 @@ class QueryResultImpl {
|
|
|
289
600
|
entityRefs = this.refIds;
|
|
290
601
|
}
|
|
291
602
|
else {
|
|
292
|
-
entityRefs = new Set();
|
|
603
|
+
entityRefs = this.refIds = new Set();
|
|
293
604
|
}
|
|
294
605
|
const shape = this.def.shape;
|
|
295
606
|
const parsedData = shape instanceof typeDefs_js_1.ValidatorDef
|
|
@@ -312,7 +623,7 @@ class QueryResultImpl {
|
|
|
312
623
|
}
|
|
313
624
|
this._nextPageParams = undefined;
|
|
314
625
|
// Cache the data (synchronous, fire-and-forget)
|
|
315
|
-
this.queryClient.saveQueryData(this.def, this.queryKey, queryData, updatedAt, entityRefs);
|
|
626
|
+
this.queryClient.saveQueryData(this.def, this.queryKey, queryData, updatedAt, entityRefs, this.getExtraForPersistence());
|
|
316
627
|
// Update the timestamp
|
|
317
628
|
this.updatedAt = Date.now();
|
|
318
629
|
return queryData;
|
|
@@ -358,6 +669,10 @@ class QueryResultImpl {
|
|
|
358
669
|
const promise = this.runQuery(this.params, true)
|
|
359
670
|
.then(result => {
|
|
360
671
|
this.relayState.value = result;
|
|
672
|
+
// Clear stream orphans and optimistic inserts on refetch
|
|
673
|
+
if (this._extra !== undefined) {
|
|
674
|
+
this._extra.clear();
|
|
675
|
+
}
|
|
361
676
|
return result;
|
|
362
677
|
})
|
|
363
678
|
.catch((error) => {
|
|
@@ -423,6 +738,68 @@ class QueryResultImpl {
|
|
|
423
738
|
get hasNextPage() {
|
|
424
739
|
return this.nextPageParams !== null;
|
|
425
740
|
}
|
|
741
|
+
get extra() {
|
|
742
|
+
this.getAllEntityRefs();
|
|
743
|
+
return this.extraData.getExtra();
|
|
744
|
+
}
|
|
745
|
+
/**
|
|
746
|
+
* Persist the current extra data to the store
|
|
747
|
+
*/
|
|
748
|
+
persistExtraData() {
|
|
749
|
+
if (this.updatedAt === undefined) {
|
|
750
|
+
return; // Query not initialized yet
|
|
751
|
+
}
|
|
752
|
+
const extra = this._extra?.getForPersistence();
|
|
753
|
+
this.queryClient.saveQueryData(this.def, this.queryKey, this.relayState.value, this.updatedAt, this.refIds, extra);
|
|
754
|
+
}
|
|
755
|
+
/**
|
|
756
|
+
* Get extra data for persistence (converts Sets to arrays of entity ref IDs)
|
|
757
|
+
*/
|
|
758
|
+
getExtraForPersistence() {
|
|
759
|
+
return this._extra?.getForPersistence();
|
|
760
|
+
}
|
|
761
|
+
/**
|
|
762
|
+
* Add an optimistic insert to the query result.
|
|
763
|
+
* The insert will be automatically removed when:
|
|
764
|
+
* - The entity appears in a refetched response
|
|
765
|
+
* - The entity appears as a stream orphan
|
|
766
|
+
* - refetch() is called
|
|
767
|
+
*/
|
|
768
|
+
addOptimisticInsert(insert) {
|
|
769
|
+
// Check that the query has optimisticInserts configured
|
|
770
|
+
const def = this.def;
|
|
771
|
+
const optimisticInsertsConfig = def.optimisticInserts;
|
|
772
|
+
if (optimisticInsertsConfig === undefined) {
|
|
773
|
+
throw new Error('Query does not have optimisticInserts configured. Add optimisticInserts: { type: YourEntity } to the query definition.');
|
|
774
|
+
}
|
|
775
|
+
let proxyId = (0, proxy_js_1.getProxyId)(insert);
|
|
776
|
+
let parsedInsert = insert;
|
|
777
|
+
// If not already a proxy, parse it through the optimisticInserts shape
|
|
778
|
+
if (proxyId === undefined) {
|
|
779
|
+
parsedInsert = (0, parseEntities_js_1.parseObjectEntities)(insert, optimisticInsertsConfig.shape, this.queryClient);
|
|
780
|
+
proxyId = (0, proxy_js_1.getProxyId)(parsedInsert);
|
|
781
|
+
if (proxyId === undefined) {
|
|
782
|
+
throw new Error('Optimistic insert must be or produce an entity proxy');
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
// Check if already in main response
|
|
786
|
+
const allRefIds = this.getAllEntityRefs();
|
|
787
|
+
if (allRefIds.has(proxyId)) {
|
|
788
|
+
return; // Already in response, no-op
|
|
789
|
+
}
|
|
790
|
+
// Check if already in stream orphans
|
|
791
|
+
if (this.extraData.hasOrphanWithId(proxyId)) {
|
|
792
|
+
return; // Already in stream orphans, no-op
|
|
793
|
+
}
|
|
794
|
+
this.extraData.addOptimisticInsert(parsedInsert);
|
|
795
|
+
}
|
|
796
|
+
/**
|
|
797
|
+
* Remove an optimistic insert from the query result.
|
|
798
|
+
* This is a no-op if the insert has already been removed.
|
|
799
|
+
*/
|
|
800
|
+
removeOptimisticInsert(insert) {
|
|
801
|
+
this.extraData.removeOptimisticInsert(insert);
|
|
802
|
+
}
|
|
426
803
|
get isStale() {
|
|
427
804
|
// Streams are never stale - they're always receiving updates
|
|
428
805
|
if (this.def.type === "stream" /* QueryType.Stream */) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryResult.js","sourceRoot":"","sources":["../../src/QueryResult.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QueryResult.js","sourceRoot":"","sources":["../../src/QueryResult.ts"],"names":[],"mappings":"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"}
|