@praxisjs/decorators 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,50 @@
1
1
  # @praxisjs/decorators
2
2
 
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 378cc54: `@Resource` now supports shared cache, stale-while-revalidate, deduplication, key-based invalidation, and refetch on focus.
8
+
9
+ **New `ResourceOptions`:**
10
+ - `key` — shared cache key; all instances with the same key reuse in-flight requests and read from a single cache entry
11
+ - `staleTime` — ms before cached data is stale; at `0` (default) cached data is shown immediately while fresh data loads in the background (SWR)
12
+ - `refetchOnFocus` — refetches when `document.visibilityState` becomes `"visible"`
13
+
14
+ **New `Resource<T>` method:**
15
+ - `destroy()` — stops effects, removes focus listeners, and unregisters from the cache registry; called automatically by `@Resource` on component unmount
16
+
17
+ **New export:**
18
+ - `invalidateResource(key)` from `@praxisjs/decorators` — clears the named cache entry and triggers an immediate refetch on every active resource under that key
19
+
20
+ **Internal:**
21
+ - `debounced()` — removed a redundant `clearTimeout` call; the effect cleanup already handles it on every re-run
22
+ - `@Memo` `serializeArgs` — removed an unreachable `null` check in the `catch` block (`JSON.stringify(null)` never throws)
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies [378cc54]
27
+ - @praxisjs/core@1.7.0
28
+
29
+ ## 1.0.2
30
+
31
+ ### Patch Changes
32
+
33
+ - cfb0de2: `@Resource` now accepts a self-receiving fetcher as an alternative to the zero-argument arrow function.
34
+
35
+ When the fetcher accepts one argument, the component instance is passed automatically at bind time — signal reads on `self` become reactive dependencies and TypeScript knows the type:
36
+
37
+ ```tsx
38
+ // before — arrow function, 'this' was module scope (undefined)
39
+ @Resource(() => fetch(`/api/posts?page=${this.page}`).then(r => r.json()))
40
+
41
+ // after — receive the instance as 'self'
42
+ @Resource((self: PostList) => fetch(`/api/posts?page=${self.page}`).then(r => r.json()))
43
+ posts!: ResourceInstance<Post[]>
44
+ ```
45
+
46
+ The zero-argument form is unchanged and continues to work for fetchers with no component dependency.
47
+
3
48
  ## 1.0.1
4
49
 
5
50
  ### Patch Changes
@@ -464,6 +464,41 @@ describe("Debounce", () => {
464
464
  expect(fn).not.toHaveBeenCalled();
465
465
  vi.useRealTimers();
466
466
  });
467
+ it("onUnmount with no pending timer is a no-op (if timer !== undefined false branch)", () => {
468
+ vi.useFakeTimers();
469
+ const fn = vi.fn();
470
+ const ctx = mockMethodContext("noTimerOp");
471
+ Debounce(50)(fn, ctx);
472
+ class BareComp extends StatefulComponent {
473
+ render() { return null; }
474
+ }
475
+ const instance = new BareComp();
476
+ ctx.runInitializers(instance);
477
+ // Never call the decorated method, so timer is undefined
478
+ // onUnmount with timer === undefined → false branch of if (timer !== undefined)
479
+ expect(() => instance.onUnmount?.()).not.toThrow();
480
+ vi.useRealTimers();
481
+ });
482
+ it("calls the pre-existing onUnmount when the component already had one", () => {
483
+ vi.useFakeTimers();
484
+ const existingUnmount = vi.fn();
485
+ const fn = vi.fn();
486
+ const ctx = mockMethodContext("debouncedWithPrior");
487
+ class CompWithUnmount extends StatefulComponent {
488
+ onUnmount() { existingUnmount(); }
489
+ render() { return null; }
490
+ }
491
+ Debounce(100)(fn, ctx);
492
+ const instance = new CompWithUnmount();
493
+ ctx.runInitializers(instance);
494
+ const method = instance.debouncedWithPrior;
495
+ method("x");
496
+ instance.onUnmount?.();
497
+ expect(existingUnmount).toHaveBeenCalledOnce();
498
+ vi.advanceTimersByTime(200);
499
+ expect(fn).not.toHaveBeenCalled(); // timer was cancelled
500
+ vi.useRealTimers();
501
+ });
467
502
  it("original method is NOT called after unmount if timer was pending", () => {
468
503
  vi.useFakeTimers();
469
504
  const fn = vi.fn();
@@ -1 +1 @@
1
- {"version":3,"file":"functions.test.js","sourceRoot":"","sources":["../../src/__tests__/functions.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.test.js","sourceRoot":"","sources":["../../src/__tests__/functions.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { describe, it, expect, vi } from "vitest";
1
+ import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ import { invalidateResource, _clearCache } from "@praxisjs/core/internal";
2
3
  import { Resource } from "../properties/resource";
3
4
  function makeFieldCtx(name) {
4
5
  const initializers = [];
@@ -123,5 +124,94 @@ describe("@Resource", () => {
123
124
  await vi.waitFor(() => r.status() === "success" && r.data() === 2);
124
125
  expect(callCount).toBe(2);
125
126
  });
127
+ it("passes instance as self when fetcher has arity > 0", async () => {
128
+ const { ctx, run } = makeFieldCtx("r");
129
+ const fetcher = vi.fn((self) => Promise.resolve(self.value));
130
+ Resource(fetcher)(undefined, ctx);
131
+ const inst = { value: 42 };
132
+ run(inst);
133
+ const r = inst.r;
134
+ await vi.waitFor(() => r.status() === "success");
135
+ expect(r.data()).toBe(42);
136
+ expect(fetcher).toHaveBeenCalledWith(inst);
137
+ });
138
+ it("setter is a no-op — assigning to the decorated field has no effect", () => {
139
+ const { ctx, run } = makeFieldCtx("r");
140
+ Resource(() => Promise.resolve(42), { immediate: false })(undefined, ctx);
141
+ const instance = {};
142
+ run(instance);
143
+ const original = instance.r;
144
+ instance.r = "overwrite-attempt"; // triggers set(): void {} (no-op)
145
+ expect(instance.r).toBe(original);
146
+ });
147
+ it("onUnmount calls destroy() on the resource", async () => {
148
+ const { ctx, run } = makeFieldCtx("r");
149
+ Resource(() => Promise.resolve(1))(undefined, ctx);
150
+ const inst = {};
151
+ run(inst);
152
+ const r = inst.r;
153
+ const spy = vi.spyOn(r, "destroy");
154
+ inst.onUnmount?.();
155
+ expect(spy).toHaveBeenCalledOnce();
156
+ });
157
+ });
158
+ describe("@Resource — cache / SWR / invalidation", () => {
159
+ beforeEach(() => { _clearCache(); });
160
+ function makeFieldCtx(name) {
161
+ const initializers = [];
162
+ return {
163
+ ctx: {
164
+ name,
165
+ kind: "field",
166
+ addInitializer(fn) { initializers.push(fn); },
167
+ },
168
+ run(instance) { initializers.forEach((fn) => { fn.call(instance); }); },
169
+ };
170
+ }
171
+ it("key: serves stale cached data immediately while refetching (SWR)", async () => {
172
+ const { ctx: ctx1, run: run1 } = makeFieldCtx("r1");
173
+ Resource(() => Promise.resolve("first"), { key: "dec-swr" })(undefined, ctx1);
174
+ const inst1 = {};
175
+ run1(inst1);
176
+ const r1 = inst1.r1;
177
+ await vi.waitFor(() => r1.status() === "success");
178
+ // Second decorator instance — should see cached data straight away
179
+ const { ctx: ctx2, run: run2 } = makeFieldCtx("r2");
180
+ Resource(() => Promise.resolve("second"), { key: "dec-swr" })(undefined, ctx2);
181
+ const inst2 = {};
182
+ run2(inst2);
183
+ const r2 = inst2.r2;
184
+ expect(r2.data()).toBe("first"); // stale data shown immediately
185
+ await vi.waitFor(() => r2.data() === "second");
186
+ r1.destroy();
187
+ r2.destroy();
188
+ });
189
+ it("invalidateResource() triggers refetch on decorated field", async () => {
190
+ let call = 0;
191
+ const { ctx, run } = makeFieldCtx("r");
192
+ Resource(() => Promise.resolve(++call), { key: "dec-inv" })(undefined, ctx);
193
+ const inst = {};
194
+ run(inst);
195
+ const r = inst.r;
196
+ await vi.waitFor(() => r.status() === "success");
197
+ expect(r.data()).toBe(1);
198
+ invalidateResource("dec-inv");
199
+ await vi.waitFor(() => r.data() === 2);
200
+ r.destroy();
201
+ });
202
+ it("destroy() via onUnmount unregisters from cache — no refetch after unmount", async () => {
203
+ let call = 0;
204
+ const { ctx, run } = makeFieldCtx("r");
205
+ Resource(() => Promise.resolve(++call), { key: "dec-unreg" })(undefined, ctx);
206
+ const inst = {};
207
+ run(inst);
208
+ const r = inst.r;
209
+ await vi.waitFor(() => r.status() === "success");
210
+ r.destroy();
211
+ const before = call;
212
+ invalidateResource("dec-unreg");
213
+ await new Promise((res) => setTimeout(res, 10));
214
+ expect(call).toBe(before);
215
+ });
126
216
  });
127
217
  //# sourceMappingURL=resource.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.test.js","sourceRoot":"","sources":["../../src/__tests__/resource.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource.test.js","sourceRoot":"","sources":["../../src/__tests__/resource.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,YAAY,GAAmC,EAAE,CAAC;IACxD,OAAO;QACL,GAAG,EAAE;YACH,IAAI;YACJ,IAAI,EAAE,OAAgB;YACtB,cAAc,CAAC,EAA2B,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACzC;QAC/B,GAAG,CAAC,QAAiB,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACjF,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3C,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAgC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1C,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACtD,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAwD,CAAC;QAC5E,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1C,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAwD,CAAC;QAC5E,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3C,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAsD,CAAC;QAC1E,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3C,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,QAAQ,CAAC,KAA4D,CAAC;QAChF,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,CAAE,CAAC,CAAC,KAAK,EAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,GAA4B,EAAE,CAAC;QACtC,MAAM,CAAC,GAA4B,EAAE,CAAC;QACtC,GAAG,CAAC,CAAC,CAAC,CAAC;QACP,GAAG,CAAC,CAAC,CAAC,CAAC;QACP,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,QAAQ,CAAC,CAA8E,CAAC;QAClG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACb,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACtD,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAiD,CAAC;QACrE,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACrG,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,QAAQ,CAAC,CAA2B,CAAC;QAC/C,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAiD,CAAC;QACrE,uCAAuC;QACvC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAsE,CAAC;QAE1F,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzB,CAAC,CAAC,OAAO,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAA6B,EAAE,EAAE,CACtD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAe,CAAC,CACtC,CAAC;QACF,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,CAAC;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,CAAiD,CAAC;QACjE,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;QACd,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;QAC5B,QAAQ,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,kCAAkC;QACpE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,CAAC;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,CAA4B,CAAC;QAC5C,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAClC,IAAmC,CAAC,SAAS,EAAE,EAAE,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,UAAU,CAAC,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAErC,SAAS,YAAY,CAAC,IAAY;QAChC,MAAM,YAAY,GAAmC,EAAE,CAAC;QACxD,OAAO;YACL,GAAG,EAAE;gBACH,IAAI;gBACJ,IAAI,EAAE,OAAgB;gBACtB,cAAc,CAAC,EAA2B,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACzC;YAC/B,GAAG,CAAC,QAAiB,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjF,CAAC;IACJ,CAAC;IAED,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9E,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,CAAC;QACZ,MAAM,EAAE,GAAG,KAAK,CAAC,EAAuE,CAAC;QACzF,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC,CAAC;QAElD,mEAAmE;QACnE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/E,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,CAAC;QACZ,MAAM,EAAE,GAAG,KAAK,CAAC,EAAuE,CAAC;QAEzF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;QAChE,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC/C,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,EAAE,CAAC,OAAO,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC5E,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,CAAC;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,CAAsE,CAAC;QACtF,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzB,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9E,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,CAAC;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,CAAsE,CAAC;QACtF,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC,CAAC;QAEjD,CAAC,CAAC,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC;QACpB,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAChC,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -127,6 +127,24 @@ describe("@Synced decorator", () => {
127
127
  instance.onUnmount?.();
128
128
  expect(MockBroadcastChannel.instances.every((ch) => ch.closed)).toBe(true);
129
129
  });
130
+ it("reuses the existing signal when the same channel key is registered again on the same instance", () => {
131
+ // Two fields using an identical explicit channel name bind to the same SyncedSignal.
132
+ const { ctx: ctx1, run: run1 } = fieldCtx("alpha");
133
+ const { ctx: ctx2, run: run2 } = fieldCtx("beta");
134
+ Synced("shared-chan")(undefined, ctx1);
135
+ Synced("shared-chan")(undefined, ctx2);
136
+ const instance = new TestComponent();
137
+ instance.alpha = "initial";
138
+ instance.beta = "initial";
139
+ run1(instance);
140
+ // second bind for "shared-chan" on the same instance hits the map.has(key) === true branch
141
+ run2(instance);
142
+ const inst = instance;
143
+ inst.alpha = "changed";
144
+ // both fields share the same underlying signal
145
+ expect(inst.beta).toBe("changed");
146
+ instance.onUnmount?.();
147
+ });
130
148
  it("onUnmount closes the BroadcastChannel", () => {
131
149
  const { ctx, run } = fieldCtx("data");
132
150
  Synced()(undefined, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"synced.test.js","sourceRoot":"","sources":["../../src/__tests__/synced.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synced.test.js","sourceRoot":"","sources":["../../src/__tests__/synced.test.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ function serializeArgs(args) {
18
18
  return JSON.stringify(a);
19
19
  }
20
20
  catch {
21
- return a === null ? "null" : objectIdentityKey(a);
21
+ return objectIdentityKey(a);
22
22
  }
23
23
  }
24
24
  if (typeof a === "symbol")
@@ -1 +1 @@
1
- {"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/functions/memo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,WAAW,GAAG,IAAI,OAAO,EAAkB,CAAC;AAClD,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,aAAa,CAAC,IAAe;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC;IAC5C,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC,CAAmD,CAAC,CAAC;IACrE,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,IAAI;IAClB,OAAO,qBAAqB,CAAC;QAC3B,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK;YAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;YACnD,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;gBAC5B,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAY,CAAC,CAAC;oBACrE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC3B,CAAC;gBACD,OAAO,QAAQ,EAAE,CAAC;YACpB,CAAC,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/functions/memo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,WAAW,GAAG,IAAI,OAAO,EAAkB,CAAC;AAClD,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,aAAa,CAAC,IAAe;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC;IAC5C,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,iBAAiB,CAAC,CAAW,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC,CAAmD,CAAC,CAAC;IACrE,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,IAAI;IAClB,OAAO,qBAAqB,CAAC;QAC3B,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK;YAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;YACnD,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;gBAC5B,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAY,CAAC,CAAC;oBACrE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC3B,CAAC;gBACD,OAAO,QAAQ,EAAE,CAAC;YACpB,CAAC,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { Component, Lazy } from "./component";
2
2
  export { Memo, Bind, Log, Once, Retry, Debounce, Throttle, When, Until, Watch, type WatchVal, type WatchVals, } from "./functions";
3
- export { Prop, State, Computed, Persisted, Slot, initSlots, History, type HistoryOf, Compose, getter, Resource, type ResourceInstance, type ResourceOptions, Synced, DeepState, } from "./properties";
3
+ export { Prop, State, Computed, Persisted, Slot, initSlots, History, type HistoryOf, Compose, getter, Resource, invalidateResource, type ResourceInstance, type ResourceOptions, Synced, DeepState, } from "./properties";
4
4
  export { type Command, createCommand, Emit, OnCommand } from "./events";
5
5
  export { createFieldDecorator, type FieldBehavior, type FieldBinding, } from "./create-field-decorator";
6
6
  export { type ReactiveHost } from "./reactive-host";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,QAAQ,EACb,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,SAAS,EACT,OAAO,EACP,KAAK,SAAS,EACd,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,MAAM,EACN,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EACL,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,KAAK,gBAAgB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,8BAA8B,EAC9B,KAAK,uBAAuB,GAC7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACnB,6BAA6B,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,QAAQ,EACb,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,SAAS,EACT,OAAO,EACP,KAAK,SAAS,EACd,OAAO,EACP,MAAM,EACN,QAAQ,EACR,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,MAAM,EACN,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EACL,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,KAAK,gBAAgB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,8BAA8B,EAC9B,KAAK,uBAAuB,GAC7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACnB,6BAA6B,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { Component, Lazy } from "./component";
2
2
  export { Memo, Bind, Log, Once, Retry, Debounce, Throttle, When, Until, Watch, } from "./functions";
3
- export { Prop, State, Computed, Persisted, Slot, initSlots, History, Compose, getter, Resource, Synced, DeepState, } from "./properties";
3
+ export { Prop, State, Computed, Persisted, Slot, initSlots, History, Compose, getter, Resource, invalidateResource, Synced, DeepState, } from "./properties";
4
4
  export { createCommand, Emit, OnCommand } from "./events";
5
5
  export { createFieldDecorator, } from "./create-field-decorator";
6
6
  export { createClassDecorator, ClassBehavior, } from "./create-class-decorator";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,GAGN,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,SAAS,EACT,OAAO,EAEP,OAAO,EACP,MAAM,EACN,QAAQ,EAGR,MAAM,EACN,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAgB,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EACL,oBAAoB,GAGrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,oBAAoB,EACpB,aAAa,GAEd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,GAEtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,8BAA8B,GAE/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,qBAAqB,EAErB,6BAA6B,GAE9B,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,GAGN,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,SAAS,EACT,OAAO,EAEP,OAAO,EACP,MAAM,EACN,QAAQ,EACR,kBAAkB,EAGlB,MAAM,EACN,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAgB,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EACL,oBAAoB,GAGrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,oBAAoB,EACpB,aAAa,GAEd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,GAEtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,8BAA8B,GAE/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,qBAAqB,EAErB,6BAA6B,GAE9B,MAAM,2BAA2B,CAAC"}
@@ -5,7 +5,7 @@ export { Persisted } from "./persisted";
5
5
  export { Slot, initSlots } from "./slot";
6
6
  export { History, type HistoryOf } from "./history";
7
7
  export { Compose, getter } from "./compose";
8
- export { Resource, type ResourceInstance, type ResourceOptions } from "./resource";
8
+ export { Resource, invalidateResource, type ResourceInstance, type ResourceOptions } from "./resource";
9
9
  export { Synced } from "./synced";
10
10
  export { DeepState } from "./deep-state";
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/properties/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/properties/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACvG,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -5,7 +5,7 @@ export { Persisted } from "./persisted";
5
5
  export { Slot, initSlots } from "./slot";
6
6
  export { History } from "./history";
7
7
  export { Compose, getter } from "./compose";
8
- export { Resource } from "./resource";
8
+ export { Resource, invalidateResource } from "./resource";
9
9
  export { Synced } from "./synced";
10
10
  export { DeepState } from "./deep-state";
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/properties/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAA+C,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/properties/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAA+C,MAAM,YAAY,CAAC;AACvG,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -1,14 +1,18 @@
1
1
  import { type Resource as ResourceInstance, type ResourceOptions } from "@praxisjs/core/internal";
2
+ export { invalidateResource } from "@praxisjs/core/internal";
2
3
  export type { ResourceInstance, ResourceOptions };
4
+ type FieldDecoratorReturn = (_value: undefined, context: ClassFieldDecoratorContext) => void;
3
5
  /**
4
- * Binds an async resource to the field. The field holds a Resource<T> object
5
- * with reactive data, pending, error, and status signals, plus refetch/cancel/mutate methods.
6
+ * Binds an async resource to the field.
6
7
  *
7
- * class MyComponent extends StatefulComponent {
8
+ * No component dependency — plain arrow:
8
9
  * @Resource(() => api.getUsers())
9
10
  * users!: ResourceInstance<User[]>;
10
- * // access: this.users.data(), this.users.pending(), this.users.refetch()
11
- * }
11
+ *
12
+ * Reads reactive component fields — receive the instance as `self`:
13
+ * @Resource((self: MyComponent) => api.getPage(self.page))
14
+ * items!: ResourceInstance<Item[]>;
12
15
  */
13
- export declare function Resource<T>(fetcher: () => Promise<T>, options?: ResourceOptions<T>): <This extends import("@praxisjs/core").StatefulComponent, Value = unknown>(_value: undefined, context: ClassFieldDecoratorContext<This, Value>) => void;
16
+ export declare function Resource<T>(fetcher: () => Promise<T>, options?: ResourceOptions<T>): FieldDecoratorReturn;
17
+ export declare function Resource<T, C extends object = any>(fetcher: (self: C) => Promise<T>, options?: ResourceOptions<T>): FieldDecoratorReturn;
14
18
  //# sourceMappingURL=resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/properties/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,IAAI,gBAAgB,EACjC,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AAIjC,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;AAElD;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM,2JAatF"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/properties/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,IAAI,gBAAgB,EACjC,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;AAElD,KAAK,oBAAoB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,0BAA0B,KAAK,IAAI,CAAC;AAE7F;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;AAE3G,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC"}
@@ -1,25 +1,23 @@
1
1
  import { resource, } from "@praxisjs/core/internal";
2
2
  import { createFieldDecorator } from "../create-field-decorator";
3
- /**
4
- * Binds an async resource to the field. The field holds a Resource<T> object
5
- * with reactive data, pending, error, and status signals, plus refetch/cancel/mutate methods.
6
- *
7
- * class MyComponent extends StatefulComponent {
8
- * @Resource(() => api.getUsers())
9
- * users!: ResourceInstance<User[]>;
10
- * // access: this.users.data(), this.users.pending(), this.users.refetch()
11
- * }
12
- */
13
- export function Resource(fetcher, options = {}) {
3
+ export { invalidateResource } from "@praxisjs/core/internal";
4
+ export function Resource(
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ fetcher, options = {}) {
14
7
  return createFieldDecorator({
15
- bind(_instance, _name, _initialValue) {
16
- const r = resource(fetcher, options);
8
+ bind(instance, _name, _initialValue) {
9
+ const bound = fetcher.length > 0
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ ? () => fetcher(instance)
12
+ : fetcher;
13
+ const r = resource(bound, options);
17
14
  return {
18
15
  descriptor: {
19
16
  get() { return r; },
20
17
  // eslint-disable-next-line @typescript-eslint/no-empty-function
21
18
  set() { },
22
19
  },
20
+ onUnmount() { r.destroy(); },
23
21
  };
24
22
  },
25
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/properties/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GAGT,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAqB,MAAM,2BAA2B,CAAC;AAIpF;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAI,OAAyB,EAAE,UAA8B,EAAE;IACrF,OAAO,oBAAoB,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa;YAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrC,OAAO;gBACL,UAAU,EAAE;oBACV,GAAG,KAA0B,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxC,gEAAgE;oBAChE,GAAG,KAAU,CAAC;iBACf;aACF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/properties/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GAGT,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAqB,MAAM,2BAA2B,CAAC;AAEpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAmB7D,MAAM,UAAU,QAAQ;AACtB,8DAA8D;AAC9D,OAAyD,EACzD,UAA8B,EAAE;IAEhC,OAAO,oBAAoB,CAAC;QAC1B,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa;YACjC,MAAM,KAAK,GACT,OAAO,CAAC,MAAM,GAAG,CAAC;gBAChB,8DAA8D;gBAC9D,CAAC,CAAC,GAAG,EAAE,CAAE,OAAqC,CAAC,QAAQ,CAAC;gBACxD,CAAC,CAAE,OAA4B,CAAC;YACpC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACnC,OAAO;gBACL,UAAU,EAAE;oBACV,GAAG,KAA0B,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxC,gEAAgE;oBAChE,GAAG,KAAU,CAAC;iBACf;gBACD,SAAS,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;aAC7B,CAAC;QACJ,CAAC;KACF,CAAoC,CAAC;AACxC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisjs/decorators",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -15,7 +15,7 @@
15
15
  "typescript": "^5.9.3"
16
16
  },
17
17
  "dependencies": {
18
- "@praxisjs/core": "1.6.0",
18
+ "@praxisjs/core": "1.7.0",
19
19
  "@praxisjs/shared": "0.2.0"
20
20
  },
21
21
  "scripts": {
@@ -613,6 +613,49 @@ describe("Debounce", () => {
613
613
  vi.useRealTimers();
614
614
  });
615
615
 
616
+ it("onUnmount with no pending timer is a no-op (if timer !== undefined false branch)", () => {
617
+ vi.useFakeTimers();
618
+ const fn = vi.fn();
619
+ const ctx = mockMethodContext("noTimerOp");
620
+ Debounce(50)(fn, ctx as unknown as ClassMethodDecoratorContext);
621
+
622
+ class BareComp extends StatefulComponent {
623
+ render() { return null; }
624
+ }
625
+ const instance = new BareComp();
626
+ ctx.runInitializers(instance);
627
+
628
+ // Never call the decorated method, so timer is undefined
629
+ // onUnmount with timer === undefined → false branch of if (timer !== undefined)
630
+ expect(() => instance.onUnmount?.()).not.toThrow();
631
+ vi.useRealTimers();
632
+ });
633
+
634
+ it("calls the pre-existing onUnmount when the component already had one", () => {
635
+ vi.useFakeTimers();
636
+ const existingUnmount = vi.fn();
637
+ const fn = vi.fn();
638
+ const ctx = mockMethodContext("debouncedWithPrior");
639
+
640
+ class CompWithUnmount extends StatefulComponent {
641
+ onUnmount() { existingUnmount(); }
642
+ render() { return null; }
643
+ }
644
+ Debounce(100)(fn, ctx as unknown as ClassMethodDecoratorContext);
645
+
646
+ const instance = new CompWithUnmount();
647
+ ctx.runInitializers(instance);
648
+ const method = (instance as unknown as Record<string, (...a: unknown[]) => void>).debouncedWithPrior;
649
+
650
+ method("x");
651
+ instance.onUnmount?.();
652
+
653
+ expect(existingUnmount).toHaveBeenCalledOnce();
654
+ vi.advanceTimersByTime(200);
655
+ expect(fn).not.toHaveBeenCalled(); // timer was cancelled
656
+ vi.useRealTimers();
657
+ });
658
+
616
659
  it("original method is NOT called after unmount if timer was pending", () => {
617
660
  vi.useFakeTimers();
618
661
  const fn = vi.fn();
@@ -1,4 +1,6 @@
1
- import { describe, it, expect, vi } from "vitest";
1
+ import { describe, it, expect, vi, beforeEach } from "vitest";
2
+
3
+ import { invalidateResource, _clearCache } from "@praxisjs/core/internal";
2
4
 
3
5
  import { Resource } from "../properties/resource";
4
6
 
@@ -138,4 +140,107 @@ describe("@Resource", () => {
138
140
  await vi.waitFor(() => r.status() === "success" && r.data() === 2);
139
141
  expect(callCount).toBe(2);
140
142
  });
143
+
144
+ it("passes instance as self when fetcher has arity > 0", async () => {
145
+ const { ctx, run } = makeFieldCtx("r");
146
+ const fetcher = vi.fn((self: Record<string, unknown>) =>
147
+ Promise.resolve(self.value as number),
148
+ );
149
+ Resource(fetcher)(undefined, ctx);
150
+ const inst: Record<string, unknown> = { value: 42 };
151
+ run(inst);
152
+ const r = inst.r as { status: () => string; data: () => number };
153
+ await vi.waitFor(() => r.status() === "success");
154
+ expect(r.data()).toBe(42);
155
+ expect(fetcher).toHaveBeenCalledWith(inst);
156
+ });
157
+
158
+ it("setter is a no-op — assigning to the decorated field has no effect", () => {
159
+ const { ctx, run } = makeFieldCtx("r");
160
+ Resource(() => Promise.resolve(42), { immediate: false })(undefined, ctx);
161
+ const instance: Record<string, unknown> = {};
162
+ run(instance);
163
+ const original = instance.r;
164
+ instance.r = "overwrite-attempt"; // triggers set(): void {} (no-op)
165
+ expect(instance.r).toBe(original);
166
+ });
167
+
168
+ it("onUnmount calls destroy() on the resource", async () => {
169
+ const { ctx, run } = makeFieldCtx("r");
170
+ Resource(() => Promise.resolve(1))(undefined, ctx);
171
+ const inst: Record<string, unknown> = {};
172
+ run(inst);
173
+ const r = inst.r as { destroy: () => void };
174
+ const spy = vi.spyOn(r, "destroy");
175
+ (inst as { onUnmount?: () => void }).onUnmount?.();
176
+ expect(spy).toHaveBeenCalledOnce();
177
+ });
178
+ });
179
+
180
+ describe("@Resource — cache / SWR / invalidation", () => {
181
+ beforeEach(() => { _clearCache(); });
182
+
183
+ function makeFieldCtx(name: string) {
184
+ const initializers: Array<(this: unknown) => void> = [];
185
+ return {
186
+ ctx: {
187
+ name,
188
+ kind: "field" as const,
189
+ addInitializer(fn: (this: unknown) => void) { initializers.push(fn); },
190
+ } as ClassFieldDecoratorContext,
191
+ run(instance: unknown) { initializers.forEach((fn) => { fn.call(instance); }); },
192
+ };
193
+ }
194
+
195
+ it("key: serves stale cached data immediately while refetching (SWR)", async () => {
196
+ const { ctx: ctx1, run: run1 } = makeFieldCtx("r1");
197
+ Resource(() => Promise.resolve("first"), { key: "dec-swr" })(undefined, ctx1);
198
+ const inst1: Record<string, unknown> = {};
199
+ run1(inst1);
200
+ const r1 = inst1.r1 as { status: () => string; data: () => string; destroy: () => void };
201
+ await vi.waitFor(() => r1.status() === "success");
202
+
203
+ // Second decorator instance — should see cached data straight away
204
+ const { ctx: ctx2, run: run2 } = makeFieldCtx("r2");
205
+ Resource(() => Promise.resolve("second"), { key: "dec-swr" })(undefined, ctx2);
206
+ const inst2: Record<string, unknown> = {};
207
+ run2(inst2);
208
+ const r2 = inst2.r2 as { status: () => string; data: () => string; destroy: () => void };
209
+
210
+ expect(r2.data()).toBe("first"); // stale data shown immediately
211
+ await vi.waitFor(() => r2.data() === "second");
212
+ r1.destroy();
213
+ r2.destroy();
214
+ });
215
+
216
+ it("invalidateResource() triggers refetch on decorated field", async () => {
217
+ let call = 0;
218
+ const { ctx, run } = makeFieldCtx("r");
219
+ Resource(() => Promise.resolve(++call), { key: "dec-inv" })(undefined, ctx);
220
+ const inst: Record<string, unknown> = {};
221
+ run(inst);
222
+ const r = inst.r as { status: () => string; data: () => number; destroy: () => void };
223
+ await vi.waitFor(() => r.status() === "success");
224
+ expect(r.data()).toBe(1);
225
+
226
+ invalidateResource("dec-inv");
227
+ await vi.waitFor(() => r.data() === 2);
228
+ r.destroy();
229
+ });
230
+
231
+ it("destroy() via onUnmount unregisters from cache — no refetch after unmount", async () => {
232
+ let call = 0;
233
+ const { ctx, run } = makeFieldCtx("r");
234
+ Resource(() => Promise.resolve(++call), { key: "dec-unreg" })(undefined, ctx);
235
+ const inst: Record<string, unknown> = {};
236
+ run(inst);
237
+ const r = inst.r as { status: () => string; data: () => number; destroy: () => void };
238
+ await vi.waitFor(() => r.status() === "success");
239
+
240
+ r.destroy();
241
+ const before = call;
242
+ invalidateResource("dec-unreg");
243
+ await new Promise((res) => setTimeout(res, 10));
244
+ expect(call).toBe(before);
245
+ });
141
246
  });
@@ -157,6 +157,27 @@ describe("@Synced decorator", () => {
157
157
  expect(MockBroadcastChannel.instances.every((ch) => ch.closed)).toBe(true);
158
158
  });
159
159
 
160
+ it("reuses the existing signal when the same channel key is registered again on the same instance", () => {
161
+ // Two fields using an identical explicit channel name bind to the same SyncedSignal.
162
+ const { ctx: ctx1, run: run1 } = fieldCtx("alpha");
163
+ const { ctx: ctx2, run: run2 } = fieldCtx("beta");
164
+ Synced("shared-chan")(undefined, ctx1);
165
+ Synced("shared-chan")(undefined, ctx2);
166
+
167
+ const instance = new TestComponent();
168
+ (instance as unknown as Record<string, unknown>).alpha = "initial";
169
+ (instance as unknown as Record<string, unknown>).beta = "initial";
170
+ run1(instance);
171
+ // second bind for "shared-chan" on the same instance hits the map.has(key) === true branch
172
+ run2(instance);
173
+
174
+ const inst = instance as unknown as { alpha: string; beta: string };
175
+ inst.alpha = "changed";
176
+ // both fields share the same underlying signal
177
+ expect(inst.beta).toBe("changed");
178
+ instance.onUnmount?.();
179
+ });
180
+
160
181
  it("onUnmount closes the BroadcastChannel", () => {
161
182
  const { ctx, run } = fieldCtx("data");
162
183
  Synced()(undefined, ctx);
@@ -21,7 +21,7 @@ function serializeArgs(args: unknown[]) {
21
21
  try {
22
22
  return JSON.stringify(a);
23
23
  } catch {
24
- return a === null ? "null" : objectIdentityKey(a);
24
+ return objectIdentityKey(a as object);
25
25
  }
26
26
  }
27
27
  if (typeof a === "symbol") return a.toString();
package/src/index.ts CHANGED
@@ -25,6 +25,7 @@ export {
25
25
  Compose,
26
26
  getter,
27
27
  Resource,
28
+ invalidateResource,
28
29
  type ResourceInstance,
29
30
  type ResourceOptions,
30
31
  Synced,
@@ -5,6 +5,6 @@ export { Persisted } from "./persisted";
5
5
  export { Slot, initSlots } from "./slot";
6
6
  export { History, type HistoryOf } from "./history";
7
7
  export { Compose, getter } from "./compose";
8
- export { Resource, type ResourceInstance, type ResourceOptions } from "./resource";
8
+ export { Resource, invalidateResource, type ResourceInstance, type ResourceOptions } from "./resource";
9
9
  export { Synced } from "./synced";
10
10
  export { DeepState } from "./deep-state";
@@ -6,29 +6,46 @@ import {
6
6
 
7
7
  import { createFieldDecorator, type FieldBinding } from "../create-field-decorator";
8
8
 
9
+ export { invalidateResource } from "@praxisjs/core/internal";
9
10
  export type { ResourceInstance, ResourceOptions };
10
11
 
12
+ type FieldDecoratorReturn = (_value: undefined, context: ClassFieldDecoratorContext) => void;
13
+
11
14
  /**
12
- * Binds an async resource to the field. The field holds a Resource<T> object
13
- * with reactive data, pending, error, and status signals, plus refetch/cancel/mutate methods.
15
+ * Binds an async resource to the field.
14
16
  *
15
- * class MyComponent extends StatefulComponent {
17
+ * No component dependency — plain arrow:
16
18
  * @Resource(() => api.getUsers())
17
19
  * users!: ResourceInstance<User[]>;
18
- * // access: this.users.data(), this.users.pending(), this.users.refetch()
19
- * }
20
+ *
21
+ * Reads reactive component fields — receive the instance as `self`:
22
+ * @Resource((self: MyComponent) => api.getPage(self.page))
23
+ * items!: ResourceInstance<Item[]>;
20
24
  */
21
- export function Resource<T>(fetcher: () => Promise<T>, options: ResourceOptions<T> = {}) {
25
+ export function Resource<T>(fetcher: () => Promise<T>, options?: ResourceOptions<T>): FieldDecoratorReturn;
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unnecessary-type-parameters
27
+ export function Resource<T, C extends object = any>(fetcher: (self: C) => Promise<T>, options?: ResourceOptions<T>): FieldDecoratorReturn;
28
+ export function Resource<T>(
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
+ fetcher: (() => Promise<T>) | ((self: any) => Promise<T>),
31
+ options: ResourceOptions<T> = {},
32
+ ): FieldDecoratorReturn {
22
33
  return createFieldDecorator({
23
- bind(_instance, _name, _initialValue): FieldBinding {
24
- const r = resource(fetcher, options);
34
+ bind(instance, _name, _initialValue): FieldBinding {
35
+ const bound =
36
+ fetcher.length > 0
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
+ ? () => (fetcher as (self: any) => Promise<T>)(instance)
39
+ : (fetcher as () => Promise<T>);
40
+ const r = resource(bound, options);
25
41
  return {
26
42
  descriptor: {
27
43
  get(): ResourceInstance<T> { return r; },
28
44
  // eslint-disable-next-line @typescript-eslint/no-empty-function
29
45
  set(): void {},
30
46
  },
47
+ onUnmount() { r.destroy(); },
31
48
  };
32
49
  },
33
- });
50
+ }) as unknown as FieldDecoratorReturn;
34
51
  }