@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.
Files changed (76) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cjs/EntityMap.js +20 -1
  3. package/dist/cjs/EntityMap.js.map +1 -1
  4. package/dist/cjs/QueryClient.js +27 -3
  5. package/dist/cjs/QueryClient.js.map +1 -1
  6. package/dist/cjs/QueryResult.js +410 -33
  7. package/dist/cjs/QueryResult.js.map +1 -1
  8. package/dist/cjs/QueryStore.js +78 -5
  9. package/dist/cjs/QueryStore.js.map +1 -1
  10. package/dist/cjs/errors.js +6 -0
  11. package/dist/cjs/errors.js.map +1 -1
  12. package/dist/cjs/index.js +3 -1
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/parseEntities.js +14 -2
  15. package/dist/cjs/parseEntities.js.map +1 -1
  16. package/dist/cjs/proxy.js +22 -5
  17. package/dist/cjs/proxy.js.map +1 -1
  18. package/dist/cjs/query.js +64 -1
  19. package/dist/cjs/query.js.map +1 -1
  20. package/dist/cjs/react/use-query.js.map +1 -1
  21. package/dist/cjs/stores/async.js.map +1 -1
  22. package/dist/cjs/stores/sync.js.map +1 -1
  23. package/dist/cjs/typeDefs.js +103 -3
  24. package/dist/cjs/typeDefs.js.map +1 -1
  25. package/dist/cjs/types.js.map +1 -1
  26. package/dist/esm/EntityMap.d.ts +3 -1
  27. package/dist/esm/EntityMap.d.ts.map +1 -1
  28. package/dist/esm/EntityMap.js +20 -1
  29. package/dist/esm/EntityMap.js.map +1 -1
  30. package/dist/esm/QueryClient.d.ts +47 -12
  31. package/dist/esm/QueryClient.d.ts.map +1 -1
  32. package/dist/esm/QueryClient.js +25 -3
  33. package/dist/esm/QueryClient.js.map +1 -1
  34. package/dist/esm/QueryResult.d.ts +34 -6
  35. package/dist/esm/QueryResult.d.ts.map +1 -1
  36. package/dist/esm/QueryResult.js +414 -37
  37. package/dist/esm/QueryResult.js.map +1 -1
  38. package/dist/esm/QueryStore.d.ts +17 -9
  39. package/dist/esm/QueryStore.d.ts.map +1 -1
  40. package/dist/esm/QueryStore.js +75 -4
  41. package/dist/esm/QueryStore.js.map +1 -1
  42. package/dist/esm/errors.d.ts.map +1 -1
  43. package/dist/esm/errors.js +6 -0
  44. package/dist/esm/errors.js.map +1 -1
  45. package/dist/esm/index.d.ts +1 -1
  46. package/dist/esm/index.d.ts.map +1 -1
  47. package/dist/esm/index.js +1 -1
  48. package/dist/esm/index.js.map +1 -1
  49. package/dist/esm/parseEntities.d.ts.map +1 -1
  50. package/dist/esm/parseEntities.js +14 -2
  51. package/dist/esm/parseEntities.js.map +1 -1
  52. package/dist/esm/proxy.d.ts +1 -0
  53. package/dist/esm/proxy.d.ts.map +1 -1
  54. package/dist/esm/proxy.js +22 -6
  55. package/dist/esm/proxy.js.map +1 -1
  56. package/dist/esm/query.d.ts +27 -11
  57. package/dist/esm/query.d.ts.map +1 -1
  58. package/dist/esm/query.js +64 -1
  59. package/dist/esm/query.js.map +1 -1
  60. package/dist/esm/react/use-query.d.ts +2 -2
  61. package/dist/esm/react/use-query.d.ts.map +1 -1
  62. package/dist/esm/react/use-query.js.map +1 -1
  63. package/dist/esm/stores/async.d.ts +3 -3
  64. package/dist/esm/stores/async.d.ts.map +1 -1
  65. package/dist/esm/stores/async.js.map +1 -1
  66. package/dist/esm/stores/sync.d.ts +3 -3
  67. package/dist/esm/stores/sync.d.ts.map +1 -1
  68. package/dist/esm/stores/sync.js.map +1 -1
  69. package/dist/esm/typeDefs.d.ts +30 -0
  70. package/dist/esm/typeDefs.d.ts.map +1 -1
  71. package/dist/esm/typeDefs.js +101 -2
  72. package/dist/esm/typeDefs.js.map +1 -1
  73. package/dist/esm/types.d.ts +68 -23
  74. package/dist/esm/types.d.ts.map +1 -1
  75. package/dist/esm/types.js.map +1 -1
  76. package/package.json +3 -3
@@ -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 === "stream" /* QueryType.Stream */) {
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
- if (this.def.type === "stream" /* QueryType.Stream */) {
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
- else {
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
- if (this.def.type === "stream" /* QueryType.Stream */) {
139
- // Unsubscribe from stream
140
- if (this.unsubscribe) {
141
- this.unsubscribe();
142
- this.unsubscribe = undefined;
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
- else if (this.def.cache?.refetchInterval) {
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
- if (this.def.type === "stream" /* QueryType.Stream */) {
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
- else {
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 by merging with existing entity.
251
- * Deep merging is handled automatically by parseEntities/setEntity.
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
- const streamDef = this.def;
256
- this.unsubscribe = streamDef.subscribeFn(this.queryClient.getContext(), this.params, update => {
257
- const shapeDef = this.def.shape;
258
- const entityRefs = this.refIds ?? new Set();
259
- const parsedData = (0, parseEntities_js_1.parseEntities)(update, shapeDef, this.queryClient, entityRefs);
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.relayState.value = parsedData;
262
- this.updatedAt = Date.now();
263
- this.refIds = entityRefs;
264
- // Cache the data
265
- this.queryClient.saveQueryData(this.def, this.queryKey, parsedData, this.updatedAt, entityRefs);
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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"}