@peerbit/document-react 0.6.5 → 0.6.6-000e3f1
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/dist/src/useQuery.d.ts.map +1 -1
- package/dist/src/useQuery.js +102 -57
- package/dist/src/useQuery.js.map +1 -1
- package/package.json +13 -11
- package/src/useQuery.tsx +112 -66
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../src/useQuery.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,aAAa,EAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACX,qBAAqB,EACrB,oBAAoB,EAEpB,gBAAgB,EAChB,kBAAkB,EAElB,YAAY,EACZ,WAAW,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../src/useQuery.tsx"],"names":[],"mappings":"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"}
|
package/dist/src/useQuery.js
CHANGED
|
@@ -7,7 +7,19 @@ import { v4 as uuid } from "uuid";
|
|
|
7
7
|
* These errors can occur during component unmount when the database is closing.
|
|
8
8
|
*/
|
|
9
9
|
const isBenignLifecycleError = (e) => {
|
|
10
|
-
|
|
10
|
+
if (e instanceof ClosedError || e instanceof NotStartedError) {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
// During teardown we may see transport-layer lifecycle errors from other packages
|
|
14
|
+
// (e.g. RPC/pubsub) that should not crash the hook.
|
|
15
|
+
if (e && typeof e === "object") {
|
|
16
|
+
const name = e.name;
|
|
17
|
+
if (name === "AbortError")
|
|
18
|
+
return true;
|
|
19
|
+
if (name === "NotStartedError")
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
11
23
|
};
|
|
12
24
|
/* ────────────────────────── Main Hook ────────────────────────── */
|
|
13
25
|
/**
|
|
@@ -38,7 +50,6 @@ dbOrDbs, options) => {
|
|
|
38
50
|
const itemIdRef = useRef(new WeakMap());
|
|
39
51
|
const emptyResultsRef = useRef(false);
|
|
40
52
|
const closeControllerRef = useRef(null);
|
|
41
|
-
const waitedOnceRef = useRef(false);
|
|
42
53
|
const loadMoreRef = useRef(undefined);
|
|
43
54
|
/* keep an id mostly for debugging – mirrors original behaviour */
|
|
44
55
|
const [id, setId] = useState(options.id);
|
|
@@ -64,13 +75,17 @@ dbOrDbs, options) => {
|
|
|
64
75
|
const mutateAll = (fn) => {
|
|
65
76
|
updateAll(fn(allRef.current));
|
|
66
77
|
};
|
|
67
|
-
const
|
|
78
|
+
const disposeIterators = (reason) => {
|
|
68
79
|
iteratorRefs.current?.forEach(({ iterator }) => iterator.close());
|
|
69
80
|
iteratorRefs.current = [];
|
|
70
|
-
|
|
81
|
+
// Abort any in-flight remote work (do not create new controllers here)
|
|
82
|
+
closeControllerRef.current?.abort(new Error(reason));
|
|
83
|
+
closeControllerRef.current = null;
|
|
84
|
+
};
|
|
85
|
+
const reset = () => {
|
|
86
|
+
disposeIterators("Reset");
|
|
71
87
|
closeControllerRef.current = new AbortController();
|
|
72
88
|
emptyResultsRef.current = false;
|
|
73
|
-
waitedOnceRef.current = false;
|
|
74
89
|
allRef.current = [];
|
|
75
90
|
itemIdRef.current = new WeakMap();
|
|
76
91
|
setAll([]);
|
|
@@ -169,12 +184,43 @@ dbOrDbs, options) => {
|
|
|
169
184
|
}
|
|
170
185
|
reset();
|
|
171
186
|
const abortSignal = closeControllerRef.current?.signal;
|
|
187
|
+
const updatesOpt = options.updates;
|
|
188
|
+
const mergeEnabled = typeof updatesOpt === "boolean"
|
|
189
|
+
? updatesOpt
|
|
190
|
+
: typeof updatesOpt === "string"
|
|
191
|
+
? true
|
|
192
|
+
: typeof updatesOpt === "object" && !!updatesOpt.merge;
|
|
193
|
+
const pushEnabled = typeof updatesOpt === "boolean"
|
|
194
|
+
? updatesOpt
|
|
195
|
+
: typeof updatesOpt === "string"
|
|
196
|
+
? updatesOpt === "remote" || updatesOpt === "all"
|
|
197
|
+
: typeof updatesOpt === "object"
|
|
198
|
+
? "push" in updatesOpt && updatesOpt.push != null
|
|
199
|
+
? typeof updatesOpt.push === "number"
|
|
200
|
+
? true
|
|
201
|
+
: !!updatesOpt.push
|
|
202
|
+
: mergeEnabled
|
|
203
|
+
: false;
|
|
204
|
+
const pushMode = typeof updatesOpt === "object" &&
|
|
205
|
+
updatesOpt != null &&
|
|
206
|
+
"push" in updatesOpt &&
|
|
207
|
+
updatesOpt.push != null
|
|
208
|
+
? updatesOpt.push
|
|
209
|
+
: pushEnabled;
|
|
172
210
|
const resolveRemoteOptions = () => {
|
|
173
211
|
if (options.remote === false)
|
|
174
212
|
return false;
|
|
175
213
|
if (!options.remote)
|
|
176
214
|
return undefined;
|
|
177
215
|
if (typeof options.remote === "object") {
|
|
216
|
+
if (options.remote.wait == null) {
|
|
217
|
+
return {
|
|
218
|
+
...options.remote,
|
|
219
|
+
wait: {
|
|
220
|
+
timeout: 5000,
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
}
|
|
178
224
|
return {
|
|
179
225
|
...options.remote,
|
|
180
226
|
wait: {
|
|
@@ -241,19 +287,18 @@ dbOrDbs, options) => {
|
|
|
241
287
|
resolve,
|
|
242
288
|
signal: abortSignal,
|
|
243
289
|
updates: {
|
|
244
|
-
push:
|
|
245
|
-
|
|
246
|
-
: typeof options.updates === "object" && options.updates.push
|
|
247
|
-
? true
|
|
248
|
-
: false,
|
|
249
|
-
merge: typeof options.updates === "boolean" && options.updates
|
|
250
|
-
? true
|
|
251
|
-
: typeof options.updates === "object" && options.updates.merge
|
|
252
|
-
? true
|
|
253
|
-
: false,
|
|
290
|
+
push: pushMode,
|
|
291
|
+
merge: mergeEnabled,
|
|
254
292
|
notify: (reason) => {
|
|
255
293
|
log("notify", { reason, currentRef: !!currentRef });
|
|
256
294
|
if (reason === "change" || reason === "push" || reason === "join") {
|
|
295
|
+
// Keep "pull-first" semantics for remote-driven updates until the user
|
|
296
|
+
// starts reading results (or enables `prefetch`). Local changes should
|
|
297
|
+
// still surface immediately.
|
|
298
|
+
const remoteDriven = reason === "join" || reason === "push";
|
|
299
|
+
if (remoteDriven && !options.prefetch && allRef.current.length === 0) {
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
257
302
|
const drainAmount = options.batchSize ?? 10;
|
|
258
303
|
scheduleDrain(iterator, drainAmount, {
|
|
259
304
|
force: true,
|
|
@@ -288,6 +333,45 @@ dbOrDbs, options) => {
|
|
|
288
333
|
/* prefetch if requested */
|
|
289
334
|
if (options.prefetch)
|
|
290
335
|
void loadMore();
|
|
336
|
+
const onDbClose = () => {
|
|
337
|
+
// If the underlying Program is closed while a remote query is in-flight,
|
|
338
|
+
// ensure we abort any pending remote work so hook consumers don't hang.
|
|
339
|
+
try {
|
|
340
|
+
disposeIterators("DB closed");
|
|
341
|
+
}
|
|
342
|
+
catch {
|
|
343
|
+
// ignore
|
|
344
|
+
}
|
|
345
|
+
try {
|
|
346
|
+
setIsLoading(false);
|
|
347
|
+
}
|
|
348
|
+
catch {
|
|
349
|
+
// ignore
|
|
350
|
+
}
|
|
351
|
+
};
|
|
352
|
+
for (const db of openDbs) {
|
|
353
|
+
try {
|
|
354
|
+
db.events?.addEventListener?.("close", onDbClose);
|
|
355
|
+
db.events?.addEventListener?.("drop", onDbClose);
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
// ignore
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
return () => {
|
|
362
|
+
for (const db of openDbs) {
|
|
363
|
+
try {
|
|
364
|
+
db.events?.removeEventListener?.("close", onDbClose);
|
|
365
|
+
db.events?.removeEventListener?.("drop", onDbClose);
|
|
366
|
+
}
|
|
367
|
+
catch {
|
|
368
|
+
// ignore
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
// Ensure we stop iterators + remote work on unmount / dependency changes,
|
|
372
|
+
// otherwise background replication/push can keep running and leak memory.
|
|
373
|
+
disposeIterators("Unmount");
|
|
374
|
+
};
|
|
291
375
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
292
376
|
}, [
|
|
293
377
|
dbs.map((d, idx) => getDbKey(d) ?? `idx:${idx}`).join("|"),
|
|
@@ -300,16 +384,6 @@ dbOrDbs, options) => {
|
|
|
300
384
|
]);
|
|
301
385
|
/* ────────────── loadMore implementation ────────────── */
|
|
302
386
|
const batchSize = options.batchSize ?? 10;
|
|
303
|
-
const shouldWait = () => {
|
|
304
|
-
if (waitedOnceRef.current)
|
|
305
|
-
return false;
|
|
306
|
-
if (options.remote === false)
|
|
307
|
-
return false;
|
|
308
|
-
return true; // mimic original behaviour – wait once if remote allowed
|
|
309
|
-
};
|
|
310
|
-
const markWaited = () => {
|
|
311
|
-
waitedOnceRef.current = true;
|
|
312
|
-
};
|
|
313
387
|
/* helper to turn primitive ids into stable map keys */
|
|
314
388
|
const idToKey = (value) => {
|
|
315
389
|
switch (typeof value) {
|
|
@@ -500,42 +574,13 @@ dbOrDbs, options) => {
|
|
|
500
574
|
});
|
|
501
575
|
return false;
|
|
502
576
|
}
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
}
|
|
507
|
-
else if (opts?.force) {
|
|
577
|
+
// Iterators are kept alive (`closePolicy: "manual"`). After hitting "empty",
|
|
578
|
+
// new remote/local updates can make them yield again, so allow polling.
|
|
579
|
+
if (emptyResultsRef.current) {
|
|
508
580
|
emptyResultsRef.current = false;
|
|
509
581
|
}
|
|
510
582
|
setIsLoading(true);
|
|
511
583
|
try {
|
|
512
|
-
/* one-time replicator warm-up across all DBs */
|
|
513
|
-
if (shouldWait()) {
|
|
514
|
-
/* if (
|
|
515
|
-
typeof options.remote === "object" &&
|
|
516
|
-
options.remote.wait
|
|
517
|
-
) {
|
|
518
|
-
await Promise.all(
|
|
519
|
-
iterators.map(async ({ db }) => {
|
|
520
|
-
try {
|
|
521
|
-
await db.log.waitForReplicators({
|
|
522
|
-
timeout: (options.remote as { warmup })
|
|
523
|
-
.warmup,
|
|
524
|
-
signal: closeControllerRef.current?.signal,
|
|
525
|
-
});
|
|
526
|
-
} catch (e) {
|
|
527
|
-
if (
|
|
528
|
-
e instanceof AbortError ||
|
|
529
|
-
e instanceof NoPeersError
|
|
530
|
-
)
|
|
531
|
-
return;
|
|
532
|
-
console.warn("Remote replicators not ready", e);
|
|
533
|
-
}
|
|
534
|
-
})
|
|
535
|
-
);
|
|
536
|
-
}*/
|
|
537
|
-
markWaited();
|
|
538
|
-
}
|
|
539
584
|
return drainRoundRobin(iterators, n, opts?.reason ?? "batch");
|
|
540
585
|
}
|
|
541
586
|
catch (e) {
|
package/dist/src/useQuery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../../src/useQuery.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../../src/useQuery.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/document-react",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.6-000e3f1",
|
|
4
4
|
"description": "React hooks for @peerbit/document",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -41,27 +41,29 @@
|
|
|
41
41
|
"react": "^18.0.0 || ^19.0.0"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"
|
|
45
|
-
"@peerbit/
|
|
46
|
-
"@peerbit/react": "0.2.3",
|
|
47
|
-
"@peerbit/logger": "2.0.0",
|
|
48
|
-
"
|
|
44
|
+
"@peerbit/document": "12.3.5-000e3f1",
|
|
45
|
+
"@peerbit/indexer-interface": "2.1.1-000e3f1",
|
|
46
|
+
"@peerbit/react": "0.2.3-000e3f1",
|
|
47
|
+
"@peerbit/logger": "2.0.0-000e3f1",
|
|
48
|
+
"uuid": "^10.0.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@dao-xyz/borsh": "^6.0.0",
|
|
52
|
+
"@peerbit/blocks-interface": "1.5.2-000e3f1",
|
|
53
|
+
"@peerbit/indexer-simple": "1.2.2-000e3f1",
|
|
54
|
+
"@peerbit/program": "5.6.3-000e3f1",
|
|
55
|
+
"@peerbit/test-utils": "2.3.19-000e3f1",
|
|
56
|
+
"@peerbit/shared-log": "12.3.5-000e3f1",
|
|
52
57
|
"@testing-library/dom": "^10.4.0",
|
|
53
58
|
"@testing-library/react": "^16.1.0",
|
|
54
59
|
"@types/react": "^19.2.4",
|
|
55
60
|
"@types/react-dom": "^19.2.3",
|
|
56
61
|
"@types/libsodium-wrappers": "^0.7.14",
|
|
57
62
|
"libsodium-wrappers": "0.7.15",
|
|
63
|
+
"peerbit": "4.4.19-000e3f1",
|
|
58
64
|
"react-dom": "^19.0.0",
|
|
59
65
|
"happy-dom": "^20.0.10",
|
|
60
|
-
"vitest": "^4.0.12"
|
|
61
|
-
"@peerbit/program": "5.6.3",
|
|
62
|
-
"@peerbit/blocks-interface": "1.5.2",
|
|
63
|
-
"@peerbit/shared-log": "12.3.4",
|
|
64
|
-
"peerbit": "4.4.19"
|
|
66
|
+
"vitest": "^4.0.12"
|
|
65
67
|
},
|
|
66
68
|
"author": "dao.xyz",
|
|
67
69
|
"license": "MIT",
|
package/src/useQuery.tsx
CHANGED
|
@@ -23,7 +23,17 @@ import { v4 as uuid } from "uuid";
|
|
|
23
23
|
* These errors can occur during component unmount when the database is closing.
|
|
24
24
|
*/
|
|
25
25
|
const isBenignLifecycleError = (e: unknown): boolean => {
|
|
26
|
-
|
|
26
|
+
if (e instanceof ClosedError || e instanceof NotStartedError) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
// During teardown we may see transport-layer lifecycle errors from other packages
|
|
30
|
+
// (e.g. RPC/pubsub) that should not crash the hook.
|
|
31
|
+
if (e && typeof e === "object") {
|
|
32
|
+
const name = (e as any).name;
|
|
33
|
+
if (name === "AbortError") return true;
|
|
34
|
+
if (name === "NotStartedError") return true;
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
27
37
|
};
|
|
28
38
|
|
|
29
39
|
type QueryOptions = { query: QueryLike; id?: string };
|
|
@@ -155,7 +165,6 @@ export const useQuery = <
|
|
|
155
165
|
const itemIdRef = useRef(new WeakMap<object, string>());
|
|
156
166
|
const emptyResultsRef = useRef(false);
|
|
157
167
|
const closeControllerRef = useRef<AbortController | null>(null);
|
|
158
|
-
const waitedOnceRef = useRef(false);
|
|
159
168
|
const loadMoreRef = useRef<LoadMoreFn | undefined>(undefined);
|
|
160
169
|
|
|
161
170
|
/* keep an id mostly for debugging – mirrors original behaviour */
|
|
@@ -186,14 +195,19 @@ export const useQuery = <
|
|
|
186
195
|
updateAll(fn(allRef.current));
|
|
187
196
|
};
|
|
188
197
|
|
|
189
|
-
const
|
|
198
|
+
const disposeIterators = (reason: string) => {
|
|
190
199
|
iteratorRefs.current?.forEach(({ iterator }) => iterator.close());
|
|
191
200
|
iteratorRefs.current = [];
|
|
192
201
|
|
|
193
|
-
|
|
202
|
+
// Abort any in-flight remote work (do not create new controllers here)
|
|
203
|
+
closeControllerRef.current?.abort(new Error(reason));
|
|
204
|
+
closeControllerRef.current = null;
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
const reset = () => {
|
|
208
|
+
disposeIterators("Reset");
|
|
194
209
|
closeControllerRef.current = new AbortController();
|
|
195
210
|
emptyResultsRef.current = false;
|
|
196
|
-
waitedOnceRef.current = false;
|
|
197
211
|
|
|
198
212
|
allRef.current = [];
|
|
199
213
|
itemIdRef.current = new WeakMap();
|
|
@@ -303,10 +317,46 @@ export const useQuery = <
|
|
|
303
317
|
|
|
304
318
|
reset();
|
|
305
319
|
const abortSignal = closeControllerRef.current?.signal;
|
|
320
|
+
|
|
321
|
+
const updatesOpt = options.updates;
|
|
322
|
+
const mergeEnabled =
|
|
323
|
+
typeof updatesOpt === "boolean"
|
|
324
|
+
? updatesOpt
|
|
325
|
+
: typeof updatesOpt === "string"
|
|
326
|
+
? true
|
|
327
|
+
: typeof updatesOpt === "object" && !!updatesOpt.merge;
|
|
328
|
+
const pushEnabled =
|
|
329
|
+
typeof updatesOpt === "boolean"
|
|
330
|
+
? updatesOpt
|
|
331
|
+
: typeof updatesOpt === "string"
|
|
332
|
+
? updatesOpt === "remote" || updatesOpt === "all"
|
|
333
|
+
: typeof updatesOpt === "object"
|
|
334
|
+
? "push" in updatesOpt && updatesOpt.push != null
|
|
335
|
+
? typeof updatesOpt.push === "number"
|
|
336
|
+
? true
|
|
337
|
+
: !!updatesOpt.push
|
|
338
|
+
: mergeEnabled
|
|
339
|
+
: false;
|
|
340
|
+
const pushMode =
|
|
341
|
+
typeof updatesOpt === "object" &&
|
|
342
|
+
updatesOpt != null &&
|
|
343
|
+
"push" in updatesOpt &&
|
|
344
|
+
updatesOpt.push != null
|
|
345
|
+
? updatesOpt.push
|
|
346
|
+
: pushEnabled;
|
|
347
|
+
|
|
306
348
|
const resolveRemoteOptions = () => {
|
|
307
349
|
if (options.remote === false) return false;
|
|
308
350
|
if (!options.remote) return undefined;
|
|
309
351
|
if (typeof options.remote === "object") {
|
|
352
|
+
if (options.remote.wait == null) {
|
|
353
|
+
return {
|
|
354
|
+
...options.remote,
|
|
355
|
+
wait: {
|
|
356
|
+
timeout: 5000,
|
|
357
|
+
},
|
|
358
|
+
};
|
|
359
|
+
}
|
|
310
360
|
return {
|
|
311
361
|
...options.remote,
|
|
312
362
|
wait: {
|
|
@@ -370,7 +420,7 @@ export const useQuery = <
|
|
|
370
420
|
.finally(() => {
|
|
371
421
|
draining = false;
|
|
372
422
|
});
|
|
373
|
-
|
|
423
|
+
};
|
|
374
424
|
|
|
375
425
|
iteratorRefs.current = openDbs.map((db) => {
|
|
376
426
|
let currentRef: IteratorRef | undefined;
|
|
@@ -382,21 +432,19 @@ export const useQuery = <
|
|
|
382
432
|
resolve,
|
|
383
433
|
signal: abortSignal,
|
|
384
434
|
updates: {
|
|
385
|
-
push:
|
|
386
|
-
|
|
387
|
-
? options.updates
|
|
388
|
-
: typeof options.updates === "object" && options.updates.push
|
|
389
|
-
? true
|
|
390
|
-
: false,
|
|
391
|
-
merge:
|
|
392
|
-
typeof options.updates === "boolean" && options.updates
|
|
393
|
-
? true
|
|
394
|
-
: typeof options.updates === "object" && options.updates.merge
|
|
395
|
-
? true
|
|
396
|
-
: false,
|
|
435
|
+
push: pushMode,
|
|
436
|
+
merge: mergeEnabled,
|
|
397
437
|
notify: (reason) => {
|
|
398
438
|
log("notify", { reason, currentRef: !!currentRef });
|
|
399
439
|
if (reason === "change" || reason === "push" || reason === "join") {
|
|
440
|
+
// Keep "pull-first" semantics for remote-driven updates until the user
|
|
441
|
+
// starts reading results (or enables `prefetch`). Local changes should
|
|
442
|
+
// still surface immediately.
|
|
443
|
+
const remoteDriven = reason === "join" || reason === "push";
|
|
444
|
+
if (remoteDriven && !options.prefetch && allRef.current.length === 0) {
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
|
|
400
448
|
const drainAmount = options.batchSize ?? 10;
|
|
401
449
|
scheduleDrain(iterator as ResultsIterator<RT>, drainAmount, {
|
|
402
450
|
force: true,
|
|
@@ -439,12 +487,49 @@ export const useQuery = <
|
|
|
439
487
|
/* store a deterministic id (useful for external keys) */
|
|
440
488
|
setId(uuid());
|
|
441
489
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
490
|
+
/* prefetch if requested */
|
|
491
|
+
if (options.prefetch) void loadMore();
|
|
492
|
+
|
|
493
|
+
const onDbClose = () => {
|
|
494
|
+
// If the underlying Program is closed while a remote query is in-flight,
|
|
495
|
+
// ensure we abort any pending remote work so hook consumers don't hang.
|
|
496
|
+
try {
|
|
497
|
+
disposeIterators("DB closed");
|
|
498
|
+
} catch {
|
|
499
|
+
// ignore
|
|
500
|
+
}
|
|
501
|
+
try {
|
|
502
|
+
setIsLoading(false);
|
|
503
|
+
} catch {
|
|
504
|
+
// ignore
|
|
505
|
+
}
|
|
506
|
+
};
|
|
507
|
+
for (const db of openDbs) {
|
|
508
|
+
try {
|
|
509
|
+
db.events?.addEventListener?.("close" as any, onDbClose as any);
|
|
510
|
+
db.events?.addEventListener?.("drop" as any, onDbClose as any);
|
|
511
|
+
} catch {
|
|
512
|
+
// ignore
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
return () => {
|
|
517
|
+
for (const db of openDbs) {
|
|
518
|
+
try {
|
|
519
|
+
db.events?.removeEventListener?.("close" as any, onDbClose as any);
|
|
520
|
+
db.events?.removeEventListener?.("drop" as any, onDbClose as any);
|
|
521
|
+
} catch {
|
|
522
|
+
// ignore
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
// Ensure we stop iterators + remote work on unmount / dependency changes,
|
|
526
|
+
// otherwise background replication/push can keep running and leak memory.
|
|
527
|
+
disposeIterators("Unmount");
|
|
528
|
+
};
|
|
529
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
530
|
+
}, [
|
|
531
|
+
dbs.map((d, idx) => getDbKey(d) ?? `idx:${idx}`).join("|"),
|
|
532
|
+
options.query,
|
|
448
533
|
options.resolve,
|
|
449
534
|
options.reverse,
|
|
450
535
|
options.batchSize,
|
|
@@ -455,16 +540,6 @@ export const useQuery = <
|
|
|
455
540
|
/* ────────────── loadMore implementation ────────────── */
|
|
456
541
|
const batchSize = options.batchSize ?? 10;
|
|
457
542
|
|
|
458
|
-
const shouldWait = (): boolean => {
|
|
459
|
-
if (waitedOnceRef.current) return false;
|
|
460
|
-
if (options.remote === false) return false;
|
|
461
|
-
return true; // mimic original behaviour – wait once if remote allowed
|
|
462
|
-
};
|
|
463
|
-
|
|
464
|
-
const markWaited = () => {
|
|
465
|
-
waitedOnceRef.current = true;
|
|
466
|
-
};
|
|
467
|
-
|
|
468
543
|
/* helper to turn primitive ids into stable map keys */
|
|
469
544
|
const idToKey = (value: indexerTypes.IdPrimitive): string => {
|
|
470
545
|
switch (typeof value) {
|
|
@@ -698,43 +773,14 @@ export const useQuery = <
|
|
|
698
773
|
});
|
|
699
774
|
return false;
|
|
700
775
|
}
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
} else if (opts?.force) {
|
|
776
|
+
// Iterators are kept alive (`closePolicy: "manual"`). After hitting "empty",
|
|
777
|
+
// new remote/local updates can make them yield again, so allow polling.
|
|
778
|
+
if (emptyResultsRef.current) {
|
|
705
779
|
emptyResultsRef.current = false;
|
|
706
780
|
}
|
|
707
781
|
|
|
708
782
|
setIsLoading(true);
|
|
709
783
|
try {
|
|
710
|
-
/* one-time replicator warm-up across all DBs */
|
|
711
|
-
if (shouldWait()) {
|
|
712
|
-
/* if (
|
|
713
|
-
typeof options.remote === "object" &&
|
|
714
|
-
options.remote.wait
|
|
715
|
-
) {
|
|
716
|
-
await Promise.all(
|
|
717
|
-
iterators.map(async ({ db }) => {
|
|
718
|
-
try {
|
|
719
|
-
await db.log.waitForReplicators({
|
|
720
|
-
timeout: (options.remote as { warmup })
|
|
721
|
-
.warmup,
|
|
722
|
-
signal: closeControllerRef.current?.signal,
|
|
723
|
-
});
|
|
724
|
-
} catch (e) {
|
|
725
|
-
if (
|
|
726
|
-
e instanceof AbortError ||
|
|
727
|
-
e instanceof NoPeersError
|
|
728
|
-
)
|
|
729
|
-
return;
|
|
730
|
-
console.warn("Remote replicators not ready", e);
|
|
731
|
-
}
|
|
732
|
-
})
|
|
733
|
-
);
|
|
734
|
-
}*/
|
|
735
|
-
markWaited();
|
|
736
|
-
}
|
|
737
|
-
|
|
738
784
|
return drainRoundRobin(iterators, n, opts?.reason ?? "batch");
|
|
739
785
|
} catch (e) {
|
|
740
786
|
if (!isBenignLifecycleError(e)) throw e;
|