@praxisjs/core 2.2.0 → 2.3.1

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 (116) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/component/internals.d.ts +12 -2
  3. package/dist/component/internals.d.ts.map +1 -1
  4. package/dist/component/internals.js +25 -7
  5. package/dist/component/internals.js.map +1 -1
  6. package/dist/internal.d.ts +3 -2
  7. package/dist/internal.d.ts.map +1 -1
  8. package/dist/internal.js +3 -2
  9. package/dist/internal.js.map +1 -1
  10. package/dist/signal/batch.d.ts +1 -3
  11. package/dist/signal/batch.d.ts.map +1 -1
  12. package/dist/signal/batch.js +4 -30
  13. package/dist/signal/batch.js.map +1 -1
  14. package/dist/signal/computed.d.ts.map +1 -1
  15. package/dist/signal/computed.js +13 -66
  16. package/dist/signal/computed.js.map +1 -1
  17. package/dist/signal/effect.d.ts +6 -14
  18. package/dist/signal/effect.d.ts.map +1 -1
  19. package/dist/signal/effect.js +11 -83
  20. package/dist/signal/effect.js.map +1 -1
  21. package/dist/signal/graph.d.ts +111 -0
  22. package/dist/signal/graph.d.ts.map +1 -0
  23. package/dist/signal/graph.js +513 -0
  24. package/dist/signal/graph.js.map +1 -0
  25. package/dist/signal/index.d.ts +1 -0
  26. package/dist/signal/index.d.ts.map +1 -1
  27. package/dist/signal/index.js +1 -0
  28. package/dist/signal/index.js.map +1 -1
  29. package/dist/signal/peek.d.ts.map +1 -1
  30. package/dist/signal/peek.js +2 -9
  31. package/dist/signal/peek.js.map +1 -1
  32. package/dist/signal/selector.d.ts +5 -0
  33. package/dist/signal/selector.d.ts.map +1 -0
  34. package/dist/signal/selector.js +128 -0
  35. package/dist/signal/selector.js.map +1 -0
  36. package/dist/signal/signal.d.ts +0 -5
  37. package/dist/signal/signal.d.ts.map +1 -1
  38. package/dist/signal/signal.js +11 -70
  39. package/dist/signal/signal.js.map +1 -1
  40. package/package.json +13 -4
  41. package/src/component/internals.ts +35 -10
  42. package/src/internal.ts +26 -0
  43. package/src/signal/batch.ts +5 -33
  44. package/src/signal/computed.ts +13 -66
  45. package/src/signal/effect.ts +12 -92
  46. package/src/signal/graph.ts +562 -0
  47. package/src/signal/index.ts +1 -0
  48. package/src/signal/peek.ts +2 -8
  49. package/src/signal/selector.ts +140 -0
  50. package/src/signal/signal.ts +11 -74
  51. package/dist/__tests__/batch.test.d.ts +0 -2
  52. package/dist/__tests__/batch.test.d.ts.map +0 -1
  53. package/dist/__tests__/batch.test.js +0 -124
  54. package/dist/__tests__/batch.test.js.map +0 -1
  55. package/dist/__tests__/component.test.d.ts +0 -2
  56. package/dist/__tests__/component.test.d.ts.map +0 -1
  57. package/dist/__tests__/component.test.js +0 -124
  58. package/dist/__tests__/component.test.js.map +0 -1
  59. package/dist/__tests__/computed.test.d.ts +0 -2
  60. package/dist/__tests__/computed.test.d.ts.map +0 -1
  61. package/dist/__tests__/computed.test.js +0 -289
  62. package/dist/__tests__/computed.test.js.map +0 -1
  63. package/dist/__tests__/effect.test.d.ts +0 -2
  64. package/dist/__tests__/effect.test.d.ts.map +0 -1
  65. package/dist/__tests__/effect.test.js +0 -200
  66. package/dist/__tests__/effect.test.js.map +0 -1
  67. package/dist/__tests__/peek.test.d.ts +0 -2
  68. package/dist/__tests__/peek.test.d.ts.map +0 -1
  69. package/dist/__tests__/peek.test.js +0 -26
  70. package/dist/__tests__/peek.test.js.map +0 -1
  71. package/dist/__tests__/persisted-signal.test.d.ts +0 -2
  72. package/dist/__tests__/persisted-signal.test.d.ts.map +0 -1
  73. package/dist/__tests__/persisted-signal.test.js +0 -252
  74. package/dist/__tests__/persisted-signal.test.js.map +0 -1
  75. package/dist/__tests__/reactive.test.d.ts +0 -2
  76. package/dist/__tests__/reactive.test.d.ts.map +0 -1
  77. package/dist/__tests__/reactive.test.js +0 -299
  78. package/dist/__tests__/reactive.test.js.map +0 -1
  79. package/dist/__tests__/resource-focus.test.d.ts +0 -2
  80. package/dist/__tests__/resource-focus.test.d.ts.map +0 -1
  81. package/dist/__tests__/resource-focus.test.js +0 -50
  82. package/dist/__tests__/resource-focus.test.js.map +0 -1
  83. package/dist/__tests__/resource-server-pass.test.d.ts +0 -2
  84. package/dist/__tests__/resource-server-pass.test.d.ts.map +0 -1
  85. package/dist/__tests__/resource-server-pass.test.js +0 -78
  86. package/dist/__tests__/resource-server-pass.test.js.map +0 -1
  87. package/dist/__tests__/resource.test.d.ts +0 -2
  88. package/dist/__tests__/resource.test.d.ts.map +0 -1
  89. package/dist/__tests__/resource.test.js +0 -336
  90. package/dist/__tests__/resource.test.js.map +0 -1
  91. package/dist/__tests__/signal.test.d.ts +0 -2
  92. package/dist/__tests__/signal.test.d.ts.map +0 -1
  93. package/dist/__tests__/signal.test.js +0 -254
  94. package/dist/__tests__/signal.test.js.map +0 -1
  95. package/dist/__tests__/synced.test.d.ts +0 -2
  96. package/dist/__tests__/synced.test.d.ts.map +0 -1
  97. package/dist/__tests__/synced.test.js +0 -142
  98. package/dist/__tests__/synced.test.js.map +0 -1
  99. package/dist/__tests__/track.test.d.ts +0 -2
  100. package/dist/__tests__/track.test.d.ts.map +0 -1
  101. package/dist/__tests__/track.test.js +0 -54
  102. package/dist/__tests__/track.test.js.map +0 -1
  103. package/src/__tests__/batch.test.ts +0 -138
  104. package/src/__tests__/component.test.ts +0 -165
  105. package/src/__tests__/computed.test.ts +0 -333
  106. package/src/__tests__/effect.test.ts +0 -241
  107. package/src/__tests__/peek.test.ts +0 -31
  108. package/src/__tests__/persisted-signal.test.ts +0 -305
  109. package/src/__tests__/reactive.test.ts +0 -343
  110. package/src/__tests__/resource-focus.test.ts +0 -61
  111. package/src/__tests__/resource-server-pass.test.ts +0 -90
  112. package/src/__tests__/resource.test.ts +0 -421
  113. package/src/__tests__/signal.test.ts +0 -291
  114. package/src/__tests__/synced.test.ts +0 -173
  115. package/src/__tests__/track.test.ts +0 -61
  116. package/tsconfig.json +0 -8
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource-focus.test.js","sourceRoot":"","sources":["../../src/__tests__/resource-focus.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=resource-server-pass.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource-server-pass.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/resource-server-pass.test.ts"],"names":[],"mappings":""}
@@ -1,78 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
- import { flushPendingResources, resource } from "../async/resource";
3
- import { _clearCache, getPendingResources } from "../async/resource-cache";
4
- import { setServerRenderPass, isServerRenderPass } from "../async/server-mode";
5
- describe("server render pass — flushPendingResources", () => {
6
- beforeEach(() => { _clearCache(); });
7
- afterEach(() => { setServerRenderPass(false); });
8
- it("is a no-op when no server pass is active", async () => {
9
- setServerRenderPass(false);
10
- const r = resource(() => new Promise(() => { }));
11
- expect(getPendingResources().size).toBe(0);
12
- await flushPendingResources();
13
- // Untouched — resource() never settled and flush didn't wait for it.
14
- expect(r.status()).toBe("pending");
15
- });
16
- it("resolves immediately when nothing is pending", async () => {
17
- setServerRenderPass(true);
18
- await expect(flushPendingResources()).resolves.toBeUndefined();
19
- });
20
- it("tracks isServerRenderPass() state via the setter", () => {
21
- expect(isServerRenderPass()).toBe(false);
22
- setServerRenderPass(true);
23
- expect(isServerRenderPass()).toBe(true);
24
- });
25
- it("awaits an unkeyed resource() (e.g. @Collection) before returning", async () => {
26
- setServerRenderPass(true);
27
- const r = resource(() => new Promise((res) => { setTimeout(() => { res("content"); }, 5); }));
28
- await flushPendingResources();
29
- expect(r.status()).toBe("success");
30
- expect(r.data()).toBe("content");
31
- });
32
- it("awaits a keyed resource() too", async () => {
33
- setServerRenderPass(true);
34
- const r = resource(() => Promise.resolve("keyed-value"), { key: "ssg-key" });
35
- await flushPendingResources();
36
- expect(r.status()).toBe("success");
37
- expect(r.data()).toBe("keyed-value");
38
- });
39
- it("awaits multiple concurrently pending resources", async () => {
40
- setServerRenderPass(true);
41
- const r1 = resource(() => new Promise((res) => { setTimeout(() => { res(1); }, 5); }));
42
- const r2 = resource(() => new Promise((res) => { setTimeout(() => { res(2); }, 10); }));
43
- await flushPendingResources();
44
- expect(r1.data()).toBe(1);
45
- expect(r2.data()).toBe(2);
46
- });
47
- it("fixed-point loop: awaits a resource created while an earlier one settles", async () => {
48
- setServerRenderPass(true);
49
- let second;
50
- // Simulates a component that, upon its first resource resolving, creates a
51
- // second resource (e.g. a detail page fetching related content) — the new
52
- // promise must still be picked up even though it didn't exist yet when
53
- // flushPendingResources() started its first pass.
54
- const first = resource(() => new Promise((res) => {
55
- setTimeout(() => {
56
- res("first");
57
- second = resource(() => new Promise((res2) => { setTimeout(() => { res2("second"); }, 5); }));
58
- }, 5);
59
- }));
60
- await flushPendingResources();
61
- expect(first.status()).toBe("success");
62
- expect(second?.status()).toBe("success");
63
- expect(second?.data()).toBe("second");
64
- });
65
- it("does not leave stale entries after resources settle", async () => {
66
- setServerRenderPass(true);
67
- resource(() => Promise.resolve("done"));
68
- await flushPendingResources();
69
- expect(getPendingResources().size).toBe(0);
70
- });
71
- it("a rejected resource does not hang the flush", async () => {
72
- setServerRenderPass(true);
73
- const r = resource(() => Promise.reject(new Error("boom")));
74
- await expect(flushPendingResources()).resolves.toBeUndefined();
75
- expect(r.status()).toBe("error");
76
- });
77
- });
78
- //# sourceMappingURL=resource-server-pass.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource-server-pass.test.js","sourceRoot":"","sources":["../../src/__tests__/resource-server-pass.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=resource.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/resource.test.ts"],"names":[],"mappings":""}
@@ -1,336 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from "vitest";
2
- import { resource, createResource } from "../async/resource";
3
- import { invalidateResource, _clearCache } from "../async/resource-cache";
4
- import { signal } from "../signal/signal";
5
- describe("resource", () => {
6
- it("starts as pending and resolves to success", async () => {
7
- const r = resource(() => Promise.resolve("hello"));
8
- expect(r.status()).toBe("pending");
9
- await vi.waitFor(() => r.status() === "success");
10
- expect(r.data()).toBe("hello");
11
- expect(r.pending()).toBe(false);
12
- expect(r.error()).toBeNull();
13
- });
14
- it("transitions to error on rejection", async () => {
15
- const r = resource(() => Promise.reject(new Error("oops")));
16
- await new Promise((res) => setTimeout(res, 0));
17
- expect(r.status()).toBe("error");
18
- expect(r.error().message).toBe("oops");
19
- expect(r.data()).toBeNull();
20
- });
21
- it("wraps non-Error rejections in Error", async () => {
22
- const r = resource(() => Promise.reject("plain string"));
23
- await new Promise((res) => setTimeout(res, 0));
24
- expect(r.status()).toBe("error");
25
- expect(r.error()).toBeInstanceOf(Error);
26
- });
27
- it("immediate=false does not fetch on creation", () => {
28
- const fetcher = vi.fn(() => Promise.resolve(1));
29
- const r = resource(fetcher, { immediate: false });
30
- expect(fetcher).not.toHaveBeenCalled();
31
- expect(r.status()).toBe("idle");
32
- });
33
- it("refetch() re-runs the fetcher", async () => {
34
- let count = 0;
35
- const r = resource(() => Promise.resolve(++count));
36
- await vi.waitFor(() => r.status() === "success");
37
- expect(r.data()).toBe(1);
38
- r.refetch();
39
- await vi.waitFor(() => r.data() === 2);
40
- expect(r.data()).toBe(2);
41
- });
42
- it("cancel() sets status back to idle and ignores in-flight result", async () => {
43
- let resolve;
44
- const r = resource(() => new Promise((res) => { resolve = res; }));
45
- r.cancel();
46
- expect(r.status()).toBe("idle");
47
- resolve(99);
48
- await new Promise((r) => setTimeout(r, 10));
49
- expect(r.data()).toBeNull(); // stale result ignored
50
- });
51
- it("mutate() sets data directly", async () => {
52
- const r = resource(() => Promise.resolve(1));
53
- await vi.waitFor(() => r.status() === "success");
54
- r.mutate(999);
55
- expect(r.data()).toBe(999);
56
- expect(r.status()).toBe("success");
57
- expect(r.error()).toBeNull();
58
- });
59
- it("initialData is visible when immediate=false", () => {
60
- const r = resource(() => new Promise(() => { }), { initialData: "cached", immediate: false });
61
- expect(r.data()).toBe("cached");
62
- expect(r.status()).toBe("idle");
63
- });
64
- it("cancel() before rejection ignores the stale error (catch stale path)", async () => {
65
- let reject;
66
- const r = resource(() => new Promise((_res, rej) => { reject = rej; }));
67
- r.cancel();
68
- expect(r.status()).toBe("idle");
69
- reject(new Error("cancelled error"));
70
- await new Promise((res) => setTimeout(res, 10));
71
- expect(r.status()).toBe("idle");
72
- expect(r.error()).toBeNull();
73
- });
74
- it("keepPreviousData=true preserves old data during refetch", async () => {
75
- let call = 0;
76
- const r = resource(() => Promise.resolve(++call), { keepPreviousData: true });
77
- await vi.waitFor(() => r.data() === 1);
78
- r.refetch();
79
- // data should still be 1 while pending
80
- expect(r.data()).toBe(1);
81
- await vi.waitFor(() => r.data() === 2);
82
- });
83
- });
84
- describe("createResource", () => {
85
- it("re-fetches when the param signal changes", async () => {
86
- const id = signal(1);
87
- const fetcher = vi.fn((n) => Promise.resolve(n * 10));
88
- const r = createResource(id, fetcher);
89
- await vi.waitFor(() => r.data() === 10);
90
- id.set(2);
91
- await vi.waitFor(() => r.data() === 20);
92
- expect(fetcher).toHaveBeenCalledTimes(2);
93
- });
94
- });
95
- describe("resource — execute() sync throw via refetch()", () => {
96
- it("refetch() captures a synchronous throw from the fetcher", async () => {
97
- const r = resource(() => Promise.resolve(1), { immediate: false });
98
- let calls = 0;
99
- const r2 = resource(() => {
100
- calls++;
101
- if (calls >= 2)
102
- throw new Error("sync in refetch");
103
- return Promise.resolve(1);
104
- }, { immediate: false });
105
- r2.refetch(); // first call succeeds
106
- await vi.waitFor(() => r2.status() === "success");
107
- r2.refetch(); // second call throws synchronously
108
- await vi.waitFor(() => r2.status() === "error");
109
- expect(r2.error().message).toBe("sync in refetch");
110
- void r;
111
- });
112
- it("refetch() wraps non-Error sync throws in Error", async () => {
113
- let calls = 0;
114
- const r = resource(() => {
115
- calls++;
116
- if (calls >= 2) {
117
- // eslint-disable-next-line @typescript-eslint/only-throw-error
118
- throw "plain string sync";
119
- }
120
- return Promise.resolve(1);
121
- }, { immediate: false });
122
- r.refetch();
123
- await vi.waitFor(() => r.status() === "success");
124
- r.refetch();
125
- await vi.waitFor(() => r.status() === "error");
126
- expect(r.error()).toBeInstanceOf(Error);
127
- expect(r.error().message).toBe("plain string sync");
128
- });
129
- });
130
- describe("resource — destroy()", () => {
131
- it("destroy() stops the reactive effect — signal changes no longer trigger refetch", async () => {
132
- const id = signal(1);
133
- const fetcher = vi.fn((n) => Promise.resolve(n * 10));
134
- const r = resource(() => fetcher(id()), { immediate: true });
135
- await vi.waitFor(() => r.status() === "success");
136
- expect(fetcher).toHaveBeenCalledTimes(1);
137
- r.destroy();
138
- id.set(2);
139
- await new Promise((res) => setTimeout(res, 10));
140
- expect(fetcher).toHaveBeenCalledTimes(1); // no re-fetch after destroy
141
- });
142
- it("destroy() is idempotent", async () => {
143
- const r = resource(() => Promise.resolve(1));
144
- await vi.waitFor(() => r.status() === "success");
145
- expect(() => { r.destroy(); r.destroy(); }).not.toThrow();
146
- });
147
- });
148
- describe("resource — cache + SWR (key, staleTime)", () => {
149
- beforeEach(() => { _clearCache(); });
150
- it("key: populates data from cache on creation (SWR)", async () => {
151
- // First resource fills the cache
152
- const r1 = resource(() => Promise.resolve("cached-value"), { key: "swr-test" });
153
- await vi.waitFor(() => r1.status() === "success");
154
- // Second resource with same key starts with cached data immediately
155
- const r2 = resource(() => Promise.resolve("new-value"), { key: "swr-test" });
156
- expect(r2.data()).toBe("cached-value"); // stale data shown immediately
157
- expect(r2.status()).toBe("pending"); // fetching fresh data in background
158
- await vi.waitFor(() => r2.data() === "new-value");
159
- r1.destroy();
160
- r2.destroy();
161
- });
162
- it("staleTime: skips fetch when cache is fresh", async () => {
163
- const fetcher = vi.fn(() => Promise.resolve("fresh"));
164
- const r1 = resource(fetcher, { key: "fresh-test", staleTime: 60_000 });
165
- await vi.waitFor(() => r1.status() === "success");
166
- expect(fetcher).toHaveBeenCalledTimes(1);
167
- // Second resource within staleTime — no fetch
168
- const r2 = resource(fetcher, { key: "fresh-test", staleTime: 60_000 });
169
- expect(r2.data()).toBe("fresh");
170
- expect(r2.status()).toBe("success");
171
- await new Promise((res) => setTimeout(res, 10));
172
- expect(fetcher).toHaveBeenCalledTimes(1); // no second fetch
173
- r1.destroy();
174
- r2.destroy();
175
- });
176
- it("staleTime: 0 (default) always refetches even with cached data", async () => {
177
- const fetcher = vi.fn(() => Promise.resolve("v1"));
178
- const r1 = resource(fetcher, { key: "always-stale" });
179
- await vi.waitFor(() => r1.status() === "success");
180
- const r2 = resource(fetcher, { key: "always-stale", staleTime: 0 });
181
- expect(r2.data()).toBe("v1"); // shows stale immediately
182
- await vi.waitFor(() => r2.status() === "success");
183
- expect(fetcher).toHaveBeenCalledTimes(2); // did refetch
184
- r1.destroy();
185
- r2.destroy();
186
- });
187
- it("key: mutate() updates the shared cache for future resources", async () => {
188
- const fetcher = vi.fn(() => Promise.resolve("server-value"));
189
- const r1 = resource(fetcher, { key: "mutate-cache", staleTime: 60_000 });
190
- await vi.waitFor(() => r1.status() === "success");
191
- r1.mutate("optimistic-value");
192
- const r2 = resource(fetcher, { key: "mutate-cache", staleTime: 60_000 });
193
- expect(r2.data()).toBe("optimistic-value");
194
- expect(r2.status()).toBe("success");
195
- await new Promise((res) => setTimeout(res, 10));
196
- expect(fetcher).toHaveBeenCalledTimes(1);
197
- r1.destroy();
198
- r2.destroy();
199
- });
200
- });
201
- describe("resource — deduplication", () => {
202
- beforeEach(() => { _clearCache(); });
203
- it("two resources with the same key share a single in-flight request", async () => {
204
- let resolveShared;
205
- const fetcher = vi.fn(() => new Promise((res) => { resolveShared = res; }));
206
- const r1 = resource(fetcher, { key: "dedup-test" });
207
- const r2 = resource(fetcher, { key: "dedup-test" });
208
- expect(fetcher).toHaveBeenCalledTimes(1); // only one fetch started
209
- resolveShared("shared-result");
210
- await vi.waitFor(() => r1.status() === "success");
211
- await vi.waitFor(() => r2.status() === "success");
212
- expect(r1.data()).toBe("shared-result");
213
- expect(r2.data()).toBe("shared-result");
214
- r1.destroy();
215
- r2.destroy();
216
- });
217
- it("key: cancel() clears the settled in-flight request even when the local result is stale", async () => {
218
- let resolveFirst;
219
- const fetcher = vi.fn(() => new Promise((res) => { resolveFirst = res; }));
220
- const r1 = resource(fetcher, { key: "cancel-inflight" });
221
- r1.cancel();
222
- resolveFirst("stale");
223
- await new Promise((res) => setTimeout(res, 0));
224
- const r2 = resource(() => Promise.resolve("fresh"), { key: "cancel-inflight" });
225
- await vi.waitFor(() => r2.data() === "fresh");
226
- expect(fetcher).toHaveBeenCalledTimes(1);
227
- expect(r1.data()).toBeNull();
228
- expect(r2.data()).toBe("fresh");
229
- r1.destroy();
230
- r2.destroy();
231
- });
232
- });
233
- describe("resource — key + non-Error sync throw in effect", () => {
234
- beforeEach(() => { _clearCache(); });
235
- it("key: wraps non-Error sync throw from fetcher inside effect in Error", async () => {
236
- const r = resource(() => {
237
- // eslint-disable-next-line @typescript-eslint/only-throw-error
238
- throw "raw string error in keyed effect";
239
- }, { key: "non-error-keyed" });
240
- await vi.waitFor(() => r.status() === "error");
241
- expect(r.error()).toBeInstanceOf(Error);
242
- expect(r.error().message).toBe("raw string error in keyed effect");
243
- r.destroy();
244
- });
245
- });
246
- describe("resource — key + rejection / sync-throw", () => {
247
- beforeEach(() => { _clearCache(); });
248
- it("key: clears in-flight entry on rejection (catch path)", async () => {
249
- const r = resource(() => Promise.reject(new Error("keyed failure")), { key: "reject-test" });
250
- await new Promise((res) => setTimeout(res, 0));
251
- expect(r.status()).toBe("error");
252
- expect(r.error().message).toBe("keyed failure");
253
- r.destroy();
254
- });
255
- it("key: sync throw inside effect is captured as error", async () => {
256
- const r = resource(() => { throw new Error("sync in keyed effect"); }, { key: "sync-throw-keyed" });
257
- await vi.waitFor(() => r.status() === "error");
258
- expect(r.error().message).toBe("sync in keyed effect");
259
- r.destroy();
260
- });
261
- });
262
- describe("resource — invalidateResource()", () => {
263
- beforeEach(() => { _clearCache(); });
264
- it("clears cache and triggers refetch on all registered resources", async () => {
265
- let call = 0;
266
- const fetcher = vi.fn(() => Promise.resolve(++call));
267
- const r1 = resource(fetcher, { key: "inv-test" });
268
- const r2 = resource(fetcher, { key: "inv-test" });
269
- await vi.waitFor(() => r1.status() === "success");
270
- await vi.waitFor(() => r2.status() === "success");
271
- const callsBefore = fetcher.mock.calls.length;
272
- invalidateResource("inv-test");
273
- await vi.waitFor(() => r1.status() === "success" && r1.data() !== callsBefore);
274
- expect(fetcher.mock.calls.length).toBeGreaterThan(callsBefore);
275
- r1.destroy();
276
- r2.destroy();
277
- });
278
- it("no-op when key has no registered resources", () => {
279
- expect(() => { invalidateResource("nonexistent-key"); }).not.toThrow();
280
- });
281
- it("unregisters resource on destroy — invalidate no longer triggers it", async () => {
282
- let call = 0;
283
- const fetcher = vi.fn(() => Promise.resolve(++call));
284
- const r = resource(fetcher, { key: "unreg-test" });
285
- await vi.waitFor(() => r.status() === "success");
286
- r.destroy();
287
- const callsBefore = fetcher.mock.calls.length;
288
- invalidateResource("unreg-test");
289
- await new Promise((res) => setTimeout(res, 10));
290
- expect(fetcher.mock.calls.length).toBe(callsBefore); // no refetch after destroy
291
- });
292
- });
293
- describe("resource — additional cases", () => {
294
- it("two concurrent refetch() calls — last result wins, stale result is discarded", async () => {
295
- let resolveFirst;
296
- let resolveSecond;
297
- let call = 0;
298
- const r = resource(() => {
299
- call++;
300
- if (call === 1)
301
- return new Promise((res) => { resolveFirst = res; });
302
- return new Promise((res) => { resolveSecond = res; });
303
- }, { immediate: false });
304
- r.refetch(); // call 1
305
- r.refetch(); // call 2 — supersedes call 1
306
- resolveSecond("second");
307
- resolveFirst("first"); // stale
308
- await vi.waitFor(() => r.status() === "success");
309
- expect(r.data()).toBe("second");
310
- });
311
- it("fetcher() throws synchronously — error is captured, does not crash", async () => {
312
- const r = resource(() => {
313
- throw new Error("sync throw");
314
- });
315
- await vi.waitFor(() => r.status() === "error");
316
- expect(r.error().message).toBe("sync throw");
317
- });
318
- it("keepPreviousData: true — data is preserved while refetching", async () => {
319
- let call = 0;
320
- let resolve;
321
- const r = resource(() => {
322
- call++;
323
- if (call === 1)
324
- return Promise.resolve(1);
325
- return new Promise((res) => { resolve = res; });
326
- }, { keepPreviousData: true });
327
- await vi.waitFor(() => r.data() === 1);
328
- r.refetch();
329
- // During refetch with keepPreviousData, old data is preserved
330
- expect(r.data()).toBe(1);
331
- expect(r.status()).toBe("pending");
332
- resolve(2);
333
- await vi.waitFor(() => r.data() === 2);
334
- });
335
- });
336
- //# sourceMappingURL=resource.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource.test.js","sourceRoot":"","sources":["../../src/__tests__/resource.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=signal.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signal.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/signal.test.ts"],"names":[],"mappings":""}