@livestore/react 0.4.0-dev.20 → 0.4.0-dev.22

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 (100) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/StoreRegistryContext.d.ts +56 -0
  3. package/dist/StoreRegistryContext.d.ts.map +1 -0
  4. package/dist/StoreRegistryContext.js +61 -0
  5. package/dist/StoreRegistryContext.js.map +1 -0
  6. package/dist/__tests__/fixture.d.ts.map +1 -1
  7. package/dist/__tests__/fixture.js +1 -6
  8. package/dist/__tests__/fixture.js.map +1 -1
  9. package/dist/experimental/components/LiveList.d.ts +4 -2
  10. package/dist/experimental/components/LiveList.d.ts.map +1 -1
  11. package/dist/experimental/components/LiveList.js +6 -5
  12. package/dist/experimental/components/LiveList.js.map +1 -1
  13. package/dist/experimental/mod.d.ts +0 -1
  14. package/dist/experimental/mod.d.ts.map +1 -1
  15. package/dist/experimental/mod.js +0 -1
  16. package/dist/experimental/mod.js.map +1 -1
  17. package/dist/mod.d.ts +4 -3
  18. package/dist/mod.d.ts.map +1 -1
  19. package/dist/mod.js +3 -2
  20. package/dist/mod.js.map +1 -1
  21. package/dist/useClientDocument.d.ts +33 -0
  22. package/dist/useClientDocument.d.ts.map +1 -1
  23. package/dist/useClientDocument.js +1 -4
  24. package/dist/useClientDocument.js.map +1 -1
  25. package/dist/useQuery.d.ts +1 -1
  26. package/dist/useQuery.d.ts.map +1 -1
  27. package/dist/useQuery.js +2 -5
  28. package/dist/useQuery.js.map +1 -1
  29. package/dist/useStore.d.ts +62 -7
  30. package/dist/useStore.d.ts.map +1 -1
  31. package/dist/useStore.js +73 -15
  32. package/dist/useStore.js.map +1 -1
  33. package/dist/useStore.test.d.ts.map +1 -0
  34. package/dist/useStore.test.js +196 -0
  35. package/dist/useStore.test.js.map +1 -0
  36. package/package.json +7 -7
  37. package/src/StoreRegistryContext.tsx +69 -0
  38. package/src/__tests__/fixture.tsx +1 -13
  39. package/src/experimental/components/LiveList.tsx +13 -4
  40. package/src/experimental/mod.ts +0 -1
  41. package/src/mod.ts +4 -3
  42. package/src/useClientDocument.ts +36 -5
  43. package/src/useQuery.ts +2 -6
  44. package/src/useStore.test.tsx +271 -0
  45. package/src/useStore.ts +102 -23
  46. package/dist/LiveStoreContext.d.ts +0 -13
  47. package/dist/LiveStoreContext.d.ts.map +0 -1
  48. package/dist/LiveStoreContext.js +0 -3
  49. package/dist/LiveStoreContext.js.map +0 -1
  50. package/dist/LiveStoreProvider.d.ts +0 -66
  51. package/dist/LiveStoreProvider.d.ts.map +0 -1
  52. package/dist/LiveStoreProvider.js +0 -232
  53. package/dist/LiveStoreProvider.js.map +0 -1
  54. package/dist/LiveStoreProvider.test.d.ts +0 -2
  55. package/dist/LiveStoreProvider.test.d.ts.map +0 -1
  56. package/dist/LiveStoreProvider.test.js +0 -117
  57. package/dist/LiveStoreProvider.test.js.map +0 -1
  58. package/dist/experimental/multi-store/StoreRegistry.d.ts +0 -61
  59. package/dist/experimental/multi-store/StoreRegistry.d.ts.map +0 -1
  60. package/dist/experimental/multi-store/StoreRegistry.js +0 -275
  61. package/dist/experimental/multi-store/StoreRegistry.js.map +0 -1
  62. package/dist/experimental/multi-store/StoreRegistry.test.d.ts +0 -2
  63. package/dist/experimental/multi-store/StoreRegistry.test.d.ts.map +0 -1
  64. package/dist/experimental/multi-store/StoreRegistry.test.js +0 -464
  65. package/dist/experimental/multi-store/StoreRegistry.test.js.map +0 -1
  66. package/dist/experimental/multi-store/StoreRegistryContext.d.ts +0 -10
  67. package/dist/experimental/multi-store/StoreRegistryContext.d.ts.map +0 -1
  68. package/dist/experimental/multi-store/StoreRegistryContext.js +0 -15
  69. package/dist/experimental/multi-store/StoreRegistryContext.js.map +0 -1
  70. package/dist/experimental/multi-store/mod.d.ts +0 -6
  71. package/dist/experimental/multi-store/mod.d.ts.map +0 -1
  72. package/dist/experimental/multi-store/mod.js +0 -6
  73. package/dist/experimental/multi-store/mod.js.map +0 -1
  74. package/dist/experimental/multi-store/storeOptions.d.ts +0 -4
  75. package/dist/experimental/multi-store/storeOptions.d.ts.map +0 -1
  76. package/dist/experimental/multi-store/storeOptions.js +0 -4
  77. package/dist/experimental/multi-store/storeOptions.js.map +0 -1
  78. package/dist/experimental/multi-store/types.d.ts +0 -44
  79. package/dist/experimental/multi-store/types.d.ts.map +0 -1
  80. package/dist/experimental/multi-store/types.js +0 -2
  81. package/dist/experimental/multi-store/types.js.map +0 -1
  82. package/dist/experimental/multi-store/useStore.d.ts +0 -11
  83. package/dist/experimental/multi-store/useStore.d.ts.map +0 -1
  84. package/dist/experimental/multi-store/useStore.js +0 -21
  85. package/dist/experimental/multi-store/useStore.js.map +0 -1
  86. package/dist/experimental/multi-store/useStore.test.d.ts.map +0 -1
  87. package/dist/experimental/multi-store/useStore.test.js +0 -144
  88. package/dist/experimental/multi-store/useStore.test.js.map +0 -1
  89. package/src/LiveStoreContext.ts +0 -14
  90. package/src/LiveStoreProvider.test.tsx +0 -248
  91. package/src/LiveStoreProvider.tsx +0 -421
  92. package/src/experimental/multi-store/StoreRegistry.test.ts +0 -631
  93. package/src/experimental/multi-store/StoreRegistry.ts +0 -347
  94. package/src/experimental/multi-store/StoreRegistryContext.tsx +0 -23
  95. package/src/experimental/multi-store/mod.ts +0 -5
  96. package/src/experimental/multi-store/storeOptions.ts +0 -8
  97. package/src/experimental/multi-store/types.ts +0 -55
  98. package/src/experimental/multi-store/useStore.test.tsx +0 -197
  99. package/src/experimental/multi-store/useStore.ts +0 -34
  100. /package/dist/{experimental/multi-store/useStore.test.d.ts → useStore.test.d.ts} +0 -0
@@ -1,464 +0,0 @@
1
- import { makeInMemoryAdapter } from '@livestore/adapter-web';
2
- import { StoreInternalsSymbol } from '@livestore/livestore';
3
- import { afterEach, describe, expect, it, vi } from 'vitest';
4
- import { schema } from "../../__tests__/fixture.js";
5
- import { DEFAULT_UNUSED_CACHE_TIME, StoreRegistry } from "./StoreRegistry.js";
6
- import { storeOptions } from "./storeOptions.js";
7
- describe('StoreRegistry', () => {
8
- afterEach(() => {
9
- vi.clearAllTimers();
10
- vi.useRealTimers();
11
- });
12
- it('returns a Promise when the store is loading', async () => {
13
- const registry = new StoreRegistry();
14
- const result = registry.getOrLoad(testStoreOptions());
15
- expect(result).toBeInstanceOf(Promise);
16
- // Clean up
17
- const store = await result;
18
- await store.shutdownPromise();
19
- });
20
- it('returns cached store synchronously after first load resolves', async () => {
21
- const registry = new StoreRegistry();
22
- const initial = registry.getOrLoad(testStoreOptions());
23
- expect(initial).toBeInstanceOf(Promise);
24
- const store = await initial;
25
- const cached = registry.getOrLoad(testStoreOptions());
26
- expect(cached).toBe(store);
27
- expect(cached).not.toBeInstanceOf(Promise);
28
- // Clean up
29
- await store.shutdownPromise();
30
- });
31
- it('reuses the same promise for concurrent getOrLoad calls while loading', async () => {
32
- const registry = new StoreRegistry();
33
- const options = testStoreOptions();
34
- const first = registry.getOrLoad(options);
35
- const second = registry.getOrLoad(options);
36
- // Both should be the same promise
37
- expect(first).toBe(second);
38
- expect(first).toBeInstanceOf(Promise);
39
- const store = await first;
40
- // Both promises should resolve to the same store
41
- expect(await second).toBe(store);
42
- // Clean up
43
- await store.shutdownPromise();
44
- });
45
- it('stores and rethrows the rejection on subsequent getOrLoad calls after a failure', async () => {
46
- const registry = new StoreRegistry();
47
- // Create an invalid adapter that will cause an error
48
- const badOptions = testStoreOptions({
49
- // @ts-expect-error - intentionally passing invalid adapter to trigger error
50
- adapter: null,
51
- });
52
- await expect(registry.getOrLoad(badOptions)).rejects.toThrow();
53
- // Subsequent call should throw the cached error synchronously
54
- expect(() => registry.getOrLoad(badOptions)).toThrow();
55
- });
56
- it('disposes store after unusedCacheTime expires', async () => {
57
- vi.useFakeTimers();
58
- const registry = new StoreRegistry();
59
- const unusedCacheTime = 25;
60
- const options = testStoreOptions({ unusedCacheTime });
61
- const store = await registry.getOrLoad(options);
62
- // Store should be cached
63
- expect(registry.getOrLoad(options)).toBe(store);
64
- // Advance time to trigger disposal
65
- await vi.advanceTimersByTimeAsync(unusedCacheTime);
66
- // After disposal, store should be removed
67
- // The store is removed from cache, so next getOrLoad creates a new one
68
- const nextStore = await registry.getOrLoad(options);
69
- // Should be a different store instance
70
- expect(nextStore).not.toBe(store);
71
- expect(nextStore[StoreInternalsSymbol].clientSession.debugInstanceId).toBeDefined();
72
- // Clean up the second store (first one was disposed)
73
- await nextStore.shutdownPromise();
74
- });
75
- it('keeps the longest unusedCacheTime seen for a store when options vary across calls', async () => {
76
- vi.useFakeTimers();
77
- const registry = new StoreRegistry();
78
- const options = testStoreOptions({ unusedCacheTime: 10 });
79
- const unsubscribe = registry.subscribe(options.storeId, () => { });
80
- const store = await registry.getOrLoad(options);
81
- // Call with longer unusedCacheTime
82
- await registry.getOrLoad(testStoreOptions({ unusedCacheTime: 100 }));
83
- unsubscribe();
84
- // After 99ms, store should still be alive (100ms unusedCacheTime used)
85
- await vi.advanceTimersByTimeAsync(99);
86
- // Store should still be cached
87
- expect(registry.getOrLoad(options)).toBe(store);
88
- // After the full 100ms, store should be disposed
89
- await vi.advanceTimersByTimeAsync(1);
90
- // Next getOrLoad should create a new store
91
- const nextStore = await registry.getOrLoad(options);
92
- expect(nextStore).not.toBe(store);
93
- // Clean up the second store (first one was disposed)
94
- await nextStore.shutdownPromise();
95
- });
96
- it('preload does not throw', async () => {
97
- const registry = new StoreRegistry();
98
- // Create invalid options that would cause an error
99
- const badOptions = testStoreOptions({
100
- // @ts-expect-error - intentionally passing invalid adapter to trigger error
101
- adapter: null,
102
- });
103
- // preload should not throw
104
- await expect(registry.preload(badOptions)).resolves.toBeUndefined();
105
- // But subsequent getOrLoad should throw the cached error
106
- expect(() => registry.getOrLoad(badOptions)).toThrow();
107
- });
108
- it('does not dispose when unusedCacheTime is Infinity', async () => {
109
- vi.useFakeTimers();
110
- const registry = new StoreRegistry();
111
- const options = testStoreOptions({ unusedCacheTime: Number.POSITIVE_INFINITY });
112
- const store = await registry.getOrLoad(options);
113
- // Store should be cached
114
- expect(registry.getOrLoad(options)).toBe(store);
115
- // Advance time by a very long duration
116
- await vi.advanceTimersByTimeAsync(1000000);
117
- // Store should still be cached (not disposed)
118
- expect(registry.getOrLoad(options)).toBe(store);
119
- // Clean up manually
120
- await store.shutdownPromise();
121
- });
122
- it('throws the same error instance on multiple synchronous calls after failure', async () => {
123
- const registry = new StoreRegistry();
124
- const badOptions = testStoreOptions({
125
- // @ts-expect-error - intentionally passing invalid adapter to trigger error
126
- adapter: null,
127
- });
128
- // Wait for the first failure
129
- await expect(registry.getOrLoad(badOptions)).rejects.toThrow();
130
- // Capture the errors from subsequent synchronous calls
131
- let error1;
132
- let error2;
133
- try {
134
- registry.getOrLoad(badOptions);
135
- }
136
- catch (err) {
137
- error1 = err;
138
- }
139
- try {
140
- registry.getOrLoad(badOptions);
141
- }
142
- catch (err) {
143
- error2 = err;
144
- }
145
- // Both should be the exact same error instance (cached)
146
- expect(error1).toBeDefined();
147
- expect(error1).toBe(error2);
148
- });
149
- it('notifies subscribers when store state changes', async () => {
150
- const registry = new StoreRegistry();
151
- const options = testStoreOptions();
152
- let notificationCount = 0;
153
- const listener = () => {
154
- notificationCount++;
155
- };
156
- const unsubscribe = registry.subscribe(options.storeId, listener);
157
- // Start loading the store
158
- const storePromise = registry.getOrLoad(options);
159
- // Listener should be called when store starts loading
160
- expect(notificationCount).toBe(1);
161
- const store = await storePromise;
162
- // Listener should be called when store loads successfully
163
- expect(notificationCount).toBe(2);
164
- unsubscribe();
165
- // Clean up
166
- await store.shutdownPromise();
167
- });
168
- it('handles rapid subscribe/unsubscribe cycles without errors', async () => {
169
- vi.useFakeTimers();
170
- const registry = new StoreRegistry();
171
- const unusedCacheTime = 50;
172
- const options = testStoreOptions({ unusedCacheTime });
173
- const store = await registry.getOrLoad(options);
174
- // Rapidly subscribe and unsubscribe multiple times
175
- for (let i = 0; i < 10; i++) {
176
- const unsubscribe = registry.subscribe(options.storeId, () => { });
177
- unsubscribe();
178
- }
179
- // Advance time to check if disposal is scheduled correctly
180
- await vi.advanceTimersByTimeAsync(unusedCacheTime);
181
- // Store should be disposed after the last unsubscribe
182
- const nextStore = await registry.getOrLoad(options);
183
- expect(nextStore).not.toBe(store);
184
- await nextStore.shutdownPromise();
185
- });
186
- it('swallows errors thrown by subscribers during notification', async () => {
187
- const registry = new StoreRegistry();
188
- const options = testStoreOptions();
189
- let errorListenerCalled = false;
190
- let goodListenerCalled = false;
191
- const errorListener = () => {
192
- errorListenerCalled = true;
193
- throw new Error('Listener error');
194
- };
195
- const goodListener = () => {
196
- goodListenerCalled = true;
197
- };
198
- registry.subscribe(options.storeId, errorListener);
199
- registry.subscribe(options.storeId, goodListener);
200
- // Should not throw despite errorListener throwing
201
- const store = await registry.getOrLoad(options);
202
- // Both listeners should have been called
203
- expect(errorListenerCalled).toBe(true);
204
- expect(goodListenerCalled).toBe(true);
205
- await store.shutdownPromise();
206
- });
207
- it('supports concurrent load and subscribe operations', async () => {
208
- const registry = new StoreRegistry();
209
- const options = testStoreOptions();
210
- let notificationCount = 0;
211
- const listener = () => {
212
- notificationCount++;
213
- };
214
- // Subscribe before loading starts
215
- const unsubscribe = registry.subscribe(options.storeId, listener);
216
- // Start loading
217
- const storePromise = registry.getOrLoad(options);
218
- // Listener should be notified when loading starts
219
- expect(notificationCount).toBeGreaterThan(0);
220
- const store = await storePromise;
221
- // Listener should be notified when loading completes
222
- expect(notificationCount).toBe(2);
223
- unsubscribe();
224
- // Clean up
225
- await store.shutdownPromise();
226
- });
227
- it('cancels disposal when a new subscription is added', async () => {
228
- vi.useFakeTimers();
229
- const registry = new StoreRegistry();
230
- const unusedCacheTime = 50;
231
- const options = testStoreOptions({ unusedCacheTime });
232
- const store = await registry.getOrLoad(options);
233
- // Advance time almost to disposal threshold
234
- await vi.advanceTimersByTimeAsync(unusedCacheTime - 5);
235
- // Add a new subscription before disposal triggers
236
- const unsubscribe = registry.subscribe(options.storeId, () => { });
237
- // Complete the original unusedCacheTime
238
- await vi.advanceTimersByTimeAsync(5);
239
- // Store should not have been disposed because we added a subscription
240
- expect(registry.getOrLoad(options)).toBe(store);
241
- // Clean up
242
- unsubscribe();
243
- await vi.advanceTimersByTimeAsync(unusedCacheTime);
244
- // Now it should be disposed
245
- const nextStore = await registry.getOrLoad(options);
246
- expect(nextStore).not.toBe(store);
247
- await nextStore.shutdownPromise();
248
- });
249
- it('schedules disposal if store becomes unused during loading', async () => {
250
- vi.useFakeTimers();
251
- const registry = new StoreRegistry();
252
- const unusedCacheTime = 50;
253
- const options = testStoreOptions({ unusedCacheTime });
254
- // Start loading without any subscription
255
- const storePromise = registry.getOrLoad(options);
256
- // Wait for store to load (no subscribers registered)
257
- const store = await storePromise;
258
- // Since there were no subscribers when loading completed, disposal should be scheduled
259
- await vi.advanceTimersByTimeAsync(unusedCacheTime);
260
- // Store should be disposed
261
- const nextStore = await registry.getOrLoad(options);
262
- expect(nextStore).not.toBe(store);
263
- await nextStore.shutdownPromise();
264
- });
265
- it('aborts loading when disposal fires while store is still loading', async () => {
266
- vi.useFakeTimers();
267
- const registry = new StoreRegistry();
268
- const unusedCacheTime = 10;
269
- const options = testStoreOptions({ unusedCacheTime });
270
- // Subscribe briefly to trigger getOrLoad and then unsubscribe
271
- const unsubscribe = registry.subscribe(options.storeId, () => { });
272
- // Start loading - this will be slow due to fake timers
273
- const loadPromise = registry.getOrLoad(options);
274
- // Attach a catch handler to prevent unhandled rejection when the load is aborted
275
- const abortedPromise = loadPromise.catch(() => {
276
- // Expected: load was aborted by disposal
277
- });
278
- // Unsubscribe immediately, which schedules disposal
279
- unsubscribe();
280
- // Advance time to trigger disposal while still loading
281
- await vi.advanceTimersByTimeAsync(unusedCacheTime);
282
- // Wait for the abort to complete
283
- await abortedPromise;
284
- // After abort, a new getOrLoad should start a fresh load
285
- const freshLoadPromise = registry.getOrLoad(options);
286
- // This should be a new promise (not the aborted one)
287
- expect(freshLoadPromise).toBeInstanceOf(Promise);
288
- expect(freshLoadPromise).not.toBe(loadPromise);
289
- // Wait for fresh load to complete
290
- const store = await freshLoadPromise;
291
- expect(store).toBeDefined();
292
- await store.shutdownPromise();
293
- });
294
- it('does not abort loading when new subscription arrives before disposal fires', async () => {
295
- vi.useFakeTimers();
296
- const registry = new StoreRegistry();
297
- const unusedCacheTime = 50;
298
- const options = testStoreOptions({ unusedCacheTime });
299
- // Start loading and immediately unsubscribe to schedule disposal
300
- const unsub1 = registry.subscribe(options.storeId, () => { });
301
- const loadPromise = registry.getOrLoad(options);
302
- unsub1();
303
- // Advance time partially (before disposal fires)
304
- await vi.advanceTimersByTimeAsync(unusedCacheTime - 10);
305
- // Add a new subscription - this should cancel the pending disposal
306
- const unsub2 = registry.subscribe(options.storeId, () => { });
307
- // Advance past the original unusedCacheTime
308
- await vi.advanceTimersByTimeAsync(20);
309
- // The load should complete normally (not be aborted)
310
- const store = await loadPromise;
311
- // And should be the same instance when retrieved again
312
- const cachedStore = registry.getOrLoad(options);
313
- expect(cachedStore).toBe(store);
314
- unsub2();
315
- await store.shutdownPromise();
316
- });
317
- it('manages multiple stores with different IDs independently', async () => {
318
- vi.useFakeTimers();
319
- const registry = new StoreRegistry();
320
- const options1 = testStoreOptions({ storeId: 'store-1', unusedCacheTime: 50 });
321
- const options2 = testStoreOptions({ storeId: 'store-2', unusedCacheTime: 100 });
322
- const store1 = await registry.getOrLoad(options1);
323
- const store2 = await registry.getOrLoad(options2);
324
- // Should be different store instances
325
- expect(store1).not.toBe(store2);
326
- // Both should be cached independently
327
- expect(registry.getOrLoad(options1)).toBe(store1);
328
- expect(registry.getOrLoad(options2)).toBe(store2);
329
- // Advance time to dispose store1 only
330
- await vi.advanceTimersByTimeAsync(50);
331
- // store1 should be disposed, store2 should still be cached
332
- const newStore1 = await registry.getOrLoad(options1);
333
- expect(newStore1).not.toBe(store1);
334
- expect(registry.getOrLoad(options2)).toBe(store2);
335
- // Subscribe to prevent disposal of newStore1
336
- const unsub1 = registry.subscribe(options1.storeId, () => { });
337
- // Advance remaining time to dispose store2
338
- await vi.advanceTimersByTimeAsync(50);
339
- // store2 should be disposed
340
- const newStore2 = await registry.getOrLoad(options2);
341
- expect(newStore2).not.toBe(store2);
342
- // Subscribe to prevent disposal of newStore2
343
- const unsub2 = registry.subscribe(options2.storeId, () => { });
344
- // Clean up
345
- unsub1();
346
- unsub2();
347
- await newStore1.shutdownPromise();
348
- await newStore2.shutdownPromise();
349
- });
350
- it('applies default options from constructor', async () => {
351
- vi.useFakeTimers();
352
- const registry = new StoreRegistry({
353
- defaultOptions: {
354
- unusedCacheTime: DEFAULT_UNUSED_CACHE_TIME * 2,
355
- },
356
- });
357
- const options = testStoreOptions();
358
- const store = await registry.getOrLoad(options);
359
- // Verify the store loads successfully
360
- expect(store).toBeDefined();
361
- expect(store[StoreInternalsSymbol].clientSession.debugInstanceId).toBeDefined();
362
- // Verify configured default unusedCacheTime is applied by checking disposal doesn't happen at library's default time
363
- await vi.advanceTimersByTimeAsync(DEFAULT_UNUSED_CACHE_TIME);
364
- // Store should still be cached after default unusedCacheTime
365
- expect(registry.getOrLoad(options)).toBe(store);
366
- await store.shutdownPromise();
367
- });
368
- it('allows call-site options to override default options', async () => {
369
- vi.useFakeTimers();
370
- const registry = new StoreRegistry({
371
- defaultOptions: {
372
- unusedCacheTime: 1000, // Default is long
373
- },
374
- });
375
- const options = testStoreOptions({
376
- unusedCacheTime: 10, // Override with shorter time
377
- });
378
- const store = await registry.getOrLoad(options);
379
- // Advance by the override time (10ms)
380
- await vi.advanceTimersByTimeAsync(10);
381
- // Should be disposed according to the override time, not default
382
- const nextStore = await registry.getOrLoad(options);
383
- expect(nextStore).not.toBe(store);
384
- await nextStore.shutdownPromise();
385
- });
386
- it('prevents subscriptions to stores that are shutting down', async () => {
387
- vi.useFakeTimers();
388
- const registry = new StoreRegistry();
389
- const unusedCacheTime = 10;
390
- const options = testStoreOptions({ unusedCacheTime });
391
- // Load the store and wait for it to be ready
392
- const originalStore = await registry.getOrLoad(options);
393
- // Verify store is cached
394
- expect(registry.getOrLoad(options)).toBe(originalStore);
395
- // Spy on shutdownPromise to detect when shutdown starts
396
- let shutdownStarted = false;
397
- let shutdownCompleted = false;
398
- const originalShutdownPromise = originalStore.shutdownPromise.bind(originalStore);
399
- originalStore.shutdownPromise = () => {
400
- shutdownStarted = true;
401
- return originalShutdownPromise().finally(() => {
402
- shutdownCompleted = true;
403
- });
404
- };
405
- // Use vi.advanceTimersToNextTimer to advance ONLY to the disposal timer firing,
406
- // then immediately (before microtasks resolve) try to get the store
407
- vi.advanceTimersToNextTimer();
408
- // The disposal callback has now executed synchronously, which means:
409
- // 1. Subscriber check passed (no subscribers)
410
- // 2. shutdown() was called (but it's async, hasn't resolved yet)
411
- // 3. Cache entry SHOULD have been removed
412
- // Verify shutdown was initiated
413
- expect(shutdownStarted).toBe(true);
414
- // Shutdown is async, so it shouldn't have completed yet in the same tick
415
- expect(shutdownCompleted).toBe(false);
416
- const storeOrPromise = registry.getOrLoad(options);
417
- if (!(storeOrPromise instanceof Promise)) {
418
- expect.fail('getOrLoad returned dying store synchronously instead of starting fresh load');
419
- }
420
- const freshStore = await storeOrPromise;
421
- // A fresh load was triggered because cache was cleared
422
- expect(freshStore).not.toBe(originalStore);
423
- await freshStore.shutdownPromise();
424
- });
425
- it('warms the cache so subsequent getOrLoad is synchronous after preload', async () => {
426
- const registry = new StoreRegistry();
427
- const options = testStoreOptions();
428
- // Preload the store
429
- await registry.preload(options);
430
- // Subsequent getOrLoad should return synchronously (not a Promise)
431
- const store = registry.getOrLoad(options);
432
- expect(store).not.toBeInstanceOf(Promise);
433
- // TypeScript doesn't narrow the type, so we need to assert
434
- if (store instanceof Promise) {
435
- throw new Error('Expected store, got Promise');
436
- }
437
- // Clean up
438
- await store.shutdownPromise();
439
- });
440
- it('schedules disposal after preload if no subscribers are added', async () => {
441
- vi.useFakeTimers();
442
- const registry = new StoreRegistry();
443
- const unusedCacheTime = 50;
444
- const options = testStoreOptions({ unusedCacheTime });
445
- // Preload without subscribing
446
- await registry.preload(options);
447
- // Get the store
448
- const store = registry.getOrLoad(options);
449
- expect(store).not.toBeInstanceOf(Promise);
450
- // Advance time to trigger disposal
451
- await vi.advanceTimersByTimeAsync(unusedCacheTime);
452
- // Store should be disposed since no subscribers were added
453
- const nextStore = await registry.getOrLoad(options);
454
- expect(nextStore).not.toBe(store);
455
- await nextStore.shutdownPromise();
456
- });
457
- });
458
- const testStoreOptions = (overrides = {}) => storeOptions({
459
- storeId: 'test-store',
460
- schema,
461
- adapter: makeInMemoryAdapter(),
462
- ...overrides,
463
- });
464
- //# sourceMappingURL=StoreRegistry.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StoreRegistry.test.js","sourceRoot":"","sources":["../../../src/experimental/multi-store/StoreRegistry.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import * as React from 'react';
2
- import type { StoreRegistry } from './StoreRegistry.ts';
3
- export declare const StoreRegistryContext: React.Context<StoreRegistry | undefined>;
4
- export type StoreRegistryProviderProps = {
5
- storeRegistry: StoreRegistry;
6
- children: React.ReactNode;
7
- };
8
- export declare const StoreRegistryProvider: ({ storeRegistry, children }: StoreRegistryProviderProps) => React.JSX.Element;
9
- export declare const useStoreRegistry: (override?: StoreRegistry) => StoreRegistry;
10
- //# sourceMappingURL=StoreRegistryContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StoreRegistryContext.d.ts","sourceRoot":"","sources":["../../../src/experimental/multi-store/StoreRegistryContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,eAAO,MAAM,oBAAoB,0CAA4D,CAAA;AAE7F,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,aAAa,CAAA;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,6BAA6B,0BAA0B,KAAG,KAAK,CAAC,GAAG,CAAC,OAEzG,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,WAAW,aAAa,kBAQxD,CAAA"}
@@ -1,15 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as React from 'react';
3
- export const StoreRegistryContext = React.createContext(undefined);
4
- export const StoreRegistryProvider = ({ storeRegistry, children }) => {
5
- return _jsx(StoreRegistryContext, { value: storeRegistry, children: children });
6
- };
7
- export const useStoreRegistry = (override) => {
8
- if (override)
9
- return override;
10
- const storeRegistry = React.use(StoreRegistryContext);
11
- if (!storeRegistry)
12
- throw new Error('useStoreRegistry() must be used within <StoreRegistryProvider>');
13
- return storeRegistry;
14
- };
15
- //# sourceMappingURL=StoreRegistryContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StoreRegistryContext.js","sourceRoot":"","sources":["../../../src/experimental/multi-store/StoreRegistryContext.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAA4B,SAAS,CAAC,CAAA;AAO7F,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAE,aAAa,EAAE,QAAQ,EAA8B,EAAqB,EAAE;IAClH,OAAO,KAAC,oBAAoB,IAAC,KAAK,EAAE,aAAa,YAAG,QAAQ,GAAwB,CAAA;AACtF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAwB,EAAE,EAAE;IAC3D,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAErD,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IAErG,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA"}
@@ -1,6 +0,0 @@
1
- export * from './StoreRegistry.ts';
2
- export * from './StoreRegistryContext.tsx';
3
- export * from './storeOptions.ts';
4
- export * from './types.ts';
5
- export * from './useStore.ts';
6
- //# sourceMappingURL=mod.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/experimental/multi-store/mod.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA"}
@@ -1,6 +0,0 @@
1
- export * from "./StoreRegistry.js";
2
- export * from "./StoreRegistryContext.js";
3
- export * from "./storeOptions.js";
4
- export * from "./types.js";
5
- export * from "./useStore.js";
6
- //# sourceMappingURL=mod.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/experimental/multi-store/mod.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA"}
@@ -1,4 +0,0 @@
1
- import type { LiveStoreSchema } from '@livestore/common/schema';
2
- import type { CachedStoreOptions } from './types.ts';
3
- export declare function storeOptions<TSchema extends LiveStoreSchema>(options: CachedStoreOptions<TSchema>): CachedStoreOptions<TSchema>;
4
- //# sourceMappingURL=storeOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storeOptions.d.ts","sourceRoot":"","sources":["../../../src/experimental/multi-store/storeOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD,wBAAgB,YAAY,CAAC,OAAO,SAAS,eAAe,EAC1D,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,GACnC,kBAAkB,CAAC,OAAO,CAAC,CAE7B"}
@@ -1,4 +0,0 @@
1
- export function storeOptions(options) {
2
- return options;
3
- }
4
- //# sourceMappingURL=storeOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storeOptions.js","sourceRoot":"","sources":["../../../src/experimental/multi-store/storeOptions.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,YAAY,CAC1B,OAAoC;IAEpC,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,44 +0,0 @@
1
- import type { Adapter } from '@livestore/common';
2
- import type { LiveStoreSchema } from '@livestore/common/schema';
3
- import type { CreateStoreOptions, OtelOptions } from '@livestore/livestore';
4
- export type StoreId = string;
5
- /**
6
- * Minimum information required to create a store
7
- */
8
- export type StoreDescriptor<TSchema extends LiveStoreSchema> = {
9
- /**
10
- * Schema describing the data structure.
11
- */
12
- readonly schema: TSchema;
13
- /**
14
- * Adapter for persistence and synchronization.
15
- */
16
- readonly adapter: Adapter;
17
- /**
18
- * The ID of the store.
19
- */
20
- readonly storeId: StoreId;
21
- };
22
- export type CachedStoreOptions<TSchema extends LiveStoreSchema = LiveStoreSchema.Any, TContext = {}> = StoreDescriptor<TSchema> & Pick<CreateStoreOptions<TSchema, TContext>, 'boot' | 'batchUpdates' | 'disableDevtools' | 'confirmUnsavedChanges' | 'syncPayload' | 'debug'> & {
23
- signal?: AbortSignal;
24
- otelOptions?: Partial<OtelOptions>;
25
- /**
26
- * The time in milliseconds that this store should remain
27
- * in memory after becoming unused. When this store becomes
28
- * unused (no subscribers), it will be disposed after this duration.
29
- *
30
- * Stores transition to the unused state as soon as they have no
31
- * subscriptions registered, so when all components which use that
32
- * store have unmounted.
33
- *
34
- * @remarks
35
- * - When different `unusedCacheTime` values are used for the same store, the longest one will be used.
36
- * - If set to `Infinity`, will disable automatic disposal
37
- * - The maximum allowed time is about {@link https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout#maximum_delay_value | 24 days}
38
- *
39
- * @defaultValue `60_000` (60 seconds) or `Infinity` during SSR to avoid
40
- * disposing stores before server render completes.
41
- */
42
- unusedCacheTime?: number;
43
- };
44
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/experimental/multi-store/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAE3E,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAE5B;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,eAAe,IAAI;IAC7D;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IAExB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,kBAAkB,CAC5B,OAAO,SAAS,eAAe,GAAG,eAAe,CAAC,GAAG,EACrD,QAAQ,GAAG,EAAE,IACX,eAAe,CAAC,OAAO,CAAC,GAC1B,IAAI,CACF,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,EACrC,MAAM,GAAG,cAAc,GAAG,iBAAiB,GAAG,uBAAuB,GAAG,aAAa,GAAG,OAAO,CAChG,GAAG;IACF,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAClC;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/experimental/multi-store/types.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- import type { LiveStoreSchema } from '@livestore/common/schema';
2
- import type { Store } from '@livestore/livestore';
3
- import type { ReactApi } from '../../LiveStoreContext.ts';
4
- import type { CachedStoreOptions } from './types.ts';
5
- /**
6
- * Suspense + Error Boundary friendly hook.
7
- * - Returns data or throws (Promise|Error).
8
- * - No loading or error states are returned.
9
- */
10
- export declare const useStore: <TSchema extends LiveStoreSchema>(options: CachedStoreOptions<TSchema>) => Store<TSchema> & ReactApi;
11
- //# sourceMappingURL=useStore.d.ts.map