@assistant-ui/tap 0.5.8 → 0.5.9

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 (61) hide show
  1. package/dist/core/ResourceFiber.d.ts +1 -1
  2. package/dist/core/ResourceFiber.d.ts.map +1 -1
  3. package/dist/core/createResourceRoot.d.ts +1 -1
  4. package/dist/core/createResourceRoot.d.ts.map +1 -1
  5. package/dist/core/helpers/commit.d.ts +1 -1
  6. package/dist/core/helpers/commit.d.ts.map +1 -1
  7. package/dist/core/helpers/execution-context.d.ts +1 -1
  8. package/dist/core/helpers/execution-context.d.ts.map +1 -1
  9. package/dist/core/helpers/root.d.ts +1 -1
  10. package/dist/core/helpers/root.d.ts.map +1 -1
  11. package/dist/core/helpers/root.js +1 -0
  12. package/dist/core/helpers/root.js.map +1 -1
  13. package/dist/core/resource.d.ts +1 -1
  14. package/dist/core/resource.d.ts.map +1 -1
  15. package/dist/core/types.d.ts +1 -1
  16. package/dist/core/types.d.ts.map +1 -1
  17. package/dist/core/withKey.d.ts +1 -1
  18. package/dist/core/withKey.d.ts.map +1 -1
  19. package/dist/hooks/tap-effect-event.d.ts.map +1 -1
  20. package/dist/hooks/tap-effect-event.js +6 -9
  21. package/dist/hooks/tap-effect-event.js.map +1 -1
  22. package/dist/hooks/tap-effect.d.ts +1 -1
  23. package/dist/hooks/tap-effect.d.ts.map +1 -1
  24. package/dist/hooks/tap-resource.d.ts +1 -1
  25. package/dist/hooks/tap-resource.d.ts.map +1 -1
  26. package/dist/hooks/tap-resources.d.ts +1 -1
  27. package/dist/hooks/tap-resources.d.ts.map +1 -1
  28. package/dist/hooks/utils/tapHook.d.ts +1 -1
  29. package/dist/hooks/utils/tapHook.d.ts.map +1 -1
  30. package/dist/react/use-resource.d.ts +1 -1
  31. package/dist/react/use-resource.d.ts.map +1 -1
  32. package/dist/react/use-resource.js +2 -0
  33. package/dist/react/use-resource.js.map +1 -1
  34. package/dist/tapResourceRoot.d.ts +1 -1
  35. package/dist/tapResourceRoot.d.ts.map +1 -1
  36. package/dist/tapResourceRoot.js +2 -0
  37. package/dist/tapResourceRoot.js.map +1 -1
  38. package/package.json +4 -4
  39. package/src/__tests__/basic/tapEffect.basic.test.ts +1 -0
  40. package/src/__tests__/basic/tapResources.basic.test.ts +0 -9
  41. package/src/__tests__/lifecycle/lifecycle.mount-unmount.test.ts +3 -0
  42. package/src/__tests__/react/concurrent-mode.test.tsx +19 -3
  43. package/src/__tests__/strictmode/react-strictmode-rerender-sources.test.tsx +8 -1
  44. package/src/__tests__/test-utils.ts +2 -21
  45. package/src/core/ResourceFiber.ts +1 -1
  46. package/src/core/createResourceRoot.ts +1 -1
  47. package/src/core/helpers/callResourceFn.ts +1 -1
  48. package/src/core/helpers/commit.ts +1 -1
  49. package/src/core/helpers/execution-context.ts +1 -1
  50. package/src/core/helpers/root.ts +2 -1
  51. package/src/core/resource.ts +1 -1
  52. package/src/core/types.ts +1 -1
  53. package/src/core/withKey.ts +1 -1
  54. package/src/hooks/tap-effect-event.ts +9 -13
  55. package/src/hooks/tap-effect.ts +2 -2
  56. package/src/hooks/tap-reducer.ts +1 -1
  57. package/src/hooks/tap-resource.ts +1 -1
  58. package/src/hooks/tap-resources.ts +1 -1
  59. package/src/hooks/utils/tapHook.ts +1 -1
  60. package/src/react/use-resource.ts +5 -3
  61. package/src/tapResourceRoot.ts +3 -1
@@ -1,4 +1,4 @@
1
- import { ResourceFiber, RenderResult, Resource, ResourceFiberRoot } from "./types.js";
1
+ import type { ResourceFiber, RenderResult, Resource, ResourceFiberRoot } from "./types.js";
2
2
  export declare function createResourceFiber<R, P>(type: Resource<R, P>, root: ResourceFiberRoot, markDirty?: (() => void) | undefined, strictMode?: "root" | "child" | null): ResourceFiber<R, P>;
3
3
  export declare function unmountResourceFiber<R, P>(fiber: ResourceFiber<R, P>): void;
4
4
  export declare function renderResourceFiber<R, P>(fiber: ResourceFiber<R, P>, props: P): RenderResult;
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceFiber.d.ts","sourceRoot":"","sources":["../../src/core/ResourceFiber.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,iBAAiB,EAClB,mBAAgB;AASjB,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,EAAE,iBAAiB,EACvB,SAAS,GAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAqB,EAC/C,UAAU,GAAE,MAAM,GAAG,OAAO,GAAG,IAA8B,GAC5D,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAarB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAM3E;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,KAAK,EAAE,CAAC,GACP,YAAY,CAiBd;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,YAAY,GACnB,IAAI,CAYN"}
1
+ {"version":3,"file":"ResourceFiber.d.ts","sourceRoot":"","sources":["../../src/core/ResourceFiber.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,iBAAiB,EAClB,mBAAgB;AASjB,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,EAAE,iBAAiB,EACvB,SAAS,GAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAqB,EAC/C,UAAU,GAAE,MAAM,GAAG,OAAO,GAAG,IAA8B,GAC5D,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAarB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAM3E;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,KAAK,EAAE,CAAC,GACP,YAAY,CAiBd;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,YAAY,GACnB,IAAI,CAYN"}
@@ -1,4 +1,4 @@
1
- import { ResourceElement } from "./types.js";
1
+ import type { ResourceElement } from "./types.js";
2
2
  export declare const createResourceRoot: () => {
3
3
  render: <R, P>(element: ResourceElement<R, P>) => any;
4
4
  unmount: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"createResourceRoot.d.ts","sourceRoot":"","sources":["../../src/core/createResourceRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAgB;AAe1C,eAAO,MAAM,kBAAkB;aAqBlB,CAAC,EAAE,CAAC,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;;CAgBhD,CAAC"}
1
+ {"version":3,"file":"createResourceRoot.d.ts","sourceRoot":"","sources":["../../src/core/createResourceRoot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAgB;AAe/C,eAAO,MAAM,kBAAkB;aAqBlB,CAAC,EAAE,CAAC,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;;CAgBhD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ResourceFiber, RenderResult } from "../types.js";
1
+ import type { ResourceFiber, RenderResult } from "../types.js";
2
2
  export declare function commitAllEffects(renderResult: RenderResult): void;
3
3
  export declare function cleanupAllEffects<R, P>(executionContext: ResourceFiber<R, P>): void;
4
4
  //# sourceMappingURL=commit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../../src/core/helpers/commit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAiB;AAEvD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAqBjE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,QA2B5E"}
1
+ {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../../src/core/helpers/commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAiB;AAE5D,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAqBjE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,QA2B5E"}
@@ -1,4 +1,4 @@
1
- import { ResourceFiber } from "../types.js";
1
+ import type { ResourceFiber } from "../types.js";
2
2
  export declare function withResourceFiber<R, P>(fiber: ResourceFiber<R, P>, fn: () => void): void;
3
3
  export declare function getCurrentResourceFiber(): ResourceFiber<unknown, unknown>;
4
4
  export declare function getDevStrictMode(enable: boolean): "root" | "child" | null;
@@ -1 +1 @@
1
- {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../../src/core/helpers/execution-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAiB;AAIzC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EACpC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,EAAE,EAAE,MAAM,IAAI,GACb,IAAI,CAoBN;AACD,wBAAgB,uBAAuB,IAAI,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAKzE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,2BAM/C"}
1
+ {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../../src/core/helpers/execution-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAiB;AAI9C,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EACpC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,EAAE,EAAE,MAAM,IAAI,GACb,IAAI,CAoBN;AACD,wBAAgB,uBAAuB,IAAI,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAKzE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,2BAM/C"}
@@ -1,4 +1,4 @@
1
- import { Cell, ResourceFiber, ResourceFiberRoot } from "../types.js";
1
+ import type { Cell, ResourceFiber, ResourceFiberRoot } from "../types.js";
2
2
  export declare const createResourceFiberRoot: (dispatchUpdate: (cb: () => boolean) => void) => ResourceFiberRoot;
3
3
  export declare const commitRoot: (root: ResourceFiberRoot) => void;
4
4
  export declare const setRootVersion: (root: ResourceFiberRoot, version: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../src/core/helpers/root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAiB;AAElE,eAAO,MAAM,uBAAuB,GAClC,gBAAgB,CAAC,EAAE,EAAE,MAAM,OAAO,KAAK,IAAI,KAC1C,iBAQF,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,iBAAiB,KAAG,IASpD,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,MAAM,iBAAiB,EACvB,SAAS,MAAM,KACd,IA2BF,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAC9B,MAAM,IAAI,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,KAC/B,IAMF,CAAC"}
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../src/core/helpers/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAiB;AAEvE,eAAO,MAAM,uBAAuB,GAClC,gBAAgB,CAAC,EAAE,EAAE,MAAM,OAAO,KAAK,IAAI,KAC1C,iBAQF,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,iBAAiB,KAAG,IASpD,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,MAAM,iBAAiB,EACvB,SAAS,MAAM,KACd,IA4BF,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAC9B,MAAM,IAAI,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,KAC/B,IAMF,CAAC"}
@@ -37,6 +37,7 @@ export const setRootVersion = (root, version) => {
37
37
  while (root.committedVersion + root.changelog.length > version) {
38
38
  root.changelog.pop();
39
39
  }
40
+ // biome-ignore lint/suspicious/useIterableCallbackReturn: forEach callback intentionally has no return
40
41
  root.changelog.forEach((apply) => apply());
41
42
  commitRoot(root);
42
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/core/helpers/root.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,cAA2C,EACxB,EAAE;IACrB,OAAO;QACL,OAAO,EAAE,CAAC;QACV,gBAAgB,EAAE,CAAC;QACnB,cAAc;QACd,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;KACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAuB,EAAQ,EAAE;IAC1D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,IAAuB,EACvB,OAAe,EACT,EAAE;IACR,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3B,IAAI,OAAO,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,6DAA6D;YAE7D,IAAI,IAAI,CAAC,gBAAgB,GAAG,OAAO;gBACjC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAE5D,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;gBAC/D,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YACvB,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAA8B,EAC9B,IAAgC,EAC1B,EAAE;IACR,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/core/helpers/root.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,cAA2C,EACxB,EAAE;IACrB,OAAO;QACL,OAAO,EAAE,CAAC;QACV,gBAAgB,EAAE,CAAC;QACnB,cAAc;QACd,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;KACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAuB,EAAQ,EAAE;IAC1D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,IAAuB,EACvB,OAAe,EACT,EAAE;IACR,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3B,IAAI,OAAO,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,6DAA6D;YAE7D,IAAI,IAAI,CAAC,gBAAgB,GAAG,OAAO;gBACjC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAE5D,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;gBAC/D,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YACvB,CAAC;YAED,uGAAuG;YACvG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAA8B,EAC9B,IAAgC,EAC1B,EAAE;IACR,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;AACH,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ResourceElement } from "./types.js";
1
+ import type { ResourceElement } from "./types.js";
2
2
  export declare function resource<R>(fn: () => R): () => ResourceElement<R, undefined>;
3
3
  export declare function resource<R, P>(fn: (props: P) => R): (props: P) => ResourceElement<R, P>;
4
4
  export declare function resource<R, P>(fn: (props?: P) => R): (props?: P) => ResourceElement<R, P | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/core/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAgB;AAG1C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC9E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAC3B,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,CAAC,KAAK,EAAE,CAAC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAC3B,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GACnB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/core/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAgB;AAG/C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC9E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAC3B,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,CAAC,KAAK,EAAE,CAAC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAC3B,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GACnB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC"}
@@ -25,7 +25,7 @@ export type Cell = {
25
25
  reducer: (state: any, action: any) => any;
26
26
  } | {
27
27
  readonly type: "effect";
28
- cleanup: tapEffect.Destructor | void;
28
+ cleanup: tapEffect.Destructor | undefined;
29
29
  deps: readonly unknown[] | null | undefined;
30
30
  };
31
31
  export interface EffectTask {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { ResourceElement } from "./types.js";
1
+ import type { ResourceElement } from "./types.js";
2
2
  export declare function withKey<E extends ResourceElement<any, any>>(key: string | number, element: E): E;
3
3
  //# sourceMappingURL=withKey.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withKey.d.ts","sourceRoot":"","sources":["../../src/core/withKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAgB;AAE1C,wBAAgB,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EACzD,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,OAAO,EAAE,CAAC,GACT,CAAC,CAEH"}
1
+ {"version":3,"file":"withKey.d.ts","sourceRoot":"","sources":["../../src/core/withKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAgB;AAE/C,wBAAgB,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EACzD,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,OAAO,EAAE,CAAC,GACT,CAAC,CAEH"}
@@ -1 +1 @@
1
- {"version":3,"file":"tap-effect-event.d.ts","sourceRoot":"","sources":["../../src/hooks/tap-effect-event.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC9D,QAAQ,EAAE,CAAC,GACV,CAAC,CAqBH"}
1
+ {"version":3,"file":"tap-effect-event.d.ts","sourceRoot":"","sources":["../../src/hooks/tap-effect-event.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC9D,QAAQ,EAAE,CAAC,GACV,CAAC,CAiBH"}
@@ -24,14 +24,11 @@ export function tapEffectEvent(callback) {
24
24
  tapEffect(() => {
25
25
  callbackRef.current = callback;
26
26
  });
27
- if (isDevelopment) {
28
- const fiber = getCurrentResourceFiber();
29
- return tapCallback(((...args) => {
30
- if (fiber.renderContext)
31
- throw new Error("tapEffectEvent cannot be called during render");
32
- return callbackRef.current(...args);
33
- }), [fiber]);
34
- }
35
- return callbackRef.current;
27
+ const fiber = getCurrentResourceFiber();
28
+ return tapCallback(((...args) => {
29
+ if (isDevelopment && fiber.renderContext)
30
+ throw new Error("tapEffectEvent cannot be called during render");
31
+ return callbackRef.current(...args);
32
+ }), [fiber]);
36
33
  }
37
34
  //# sourceMappingURL=tap-effect-event.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tap-effect-event.js","sourceRoot":"","sources":["../../src/hooks/tap-effect-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAkB;AACnC,OAAO,EAAE,SAAS,EAAE,wBAAqB;AACzC,OAAO,EAAE,aAAa,EAAE,+BAA4B;AACpD,OAAO,EAAE,WAAW,EAAE,0BAAuB;AAC7C,OAAO,EAAE,uBAAuB,EAAE,6CAA0C;AAE5E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAW;IAEX,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAErC,4DAA4D;IAC5D,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,uBAAuB,EAAE,CAAC;QACxC,OAAO,WAAW,CAChB,CAAC,CAAC,GAAG,IAAmB,EAAE,EAAE;YAC1B,IAAI,KAAK,CAAC,aAAa;gBACrB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,OAAO,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QACtC,CAAC,CAAM,EACP,CAAC,KAAK,CAAC,CACR,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"tap-effect-event.js","sourceRoot":"","sources":["../../src/hooks/tap-effect-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAkB;AACnC,OAAO,EAAE,SAAS,EAAE,wBAAqB;AACzC,OAAO,EAAE,aAAa,EAAE,+BAA4B;AACpD,OAAO,EAAE,WAAW,EAAE,0BAAuB;AAC7C,OAAO,EAAE,uBAAuB,EAAE,6CAA0C;AAE5E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAW;IAEX,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAErC,4DAA4D;IAC5D,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,uBAAuB,EAAE,CAAC;IACxC,OAAO,WAAW,CAChB,CAAC,CAAC,GAAG,IAAmB,EAAE,EAAE;QAC1B,IAAI,aAAa,IAAI,KAAK,CAAC,aAAa;YACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,OAAO,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC,CAAM,EACP,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  export declare namespace tapEffect {
2
2
  type Destructor = () => void;
3
- type EffectCallback = () => void | Destructor;
3
+ type EffectCallback = () => Destructor | undefined;
4
4
  }
5
5
  export declare function tapEffect(effect: tapEffect.EffectCallback): void;
6
6
  export declare function tapEffect(effect: tapEffect.EffectCallback, deps: readonly unknown[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"tap-effect.d.ts","sourceRoot":"","sources":["../../src/hooks/tap-effect.ts"],"names":[],"mappings":"AAUA,yBAAiB,SAAS,CAAC;IACzB,KAAY,UAAU,GAAG,MAAM,IAAI,CAAC;IACpC,KAAY,cAAc,GAAG,MAAM,IAAI,GAAG,UAAU,CAAC;CACtD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;AAClE,wBAAgB,SAAS,CACvB,MAAM,EAAE,SAAS,CAAC,cAAc,EAChC,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB,IAAI,CAAC"}
1
+ {"version":3,"file":"tap-effect.d.ts","sourceRoot":"","sources":["../../src/hooks/tap-effect.ts"],"names":[],"mappings":"AAUA,yBAAiB,SAAS,CAAC;IACzB,KAAY,UAAU,GAAG,MAAM,IAAI,CAAC;IACpC,KAAY,cAAc,GAAG,MAAM,UAAU,GAAG,SAAS,CAAC;CAC3D;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;AAClE,wBAAgB,SAAS,CACvB,MAAM,EAAE,SAAS,CAAC,cAAc,EAChC,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB,IAAI,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ExtractResourceReturnType, ResourceElement } from "../core/types.js";
1
+ import type { ExtractResourceReturnType, ResourceElement } from "../core/types.js";
2
2
  export declare function tapResource<E extends ResourceElement<any, any>>(element: E): ExtractResourceReturnType<E>;
3
3
  export declare function tapResource<E extends ResourceElement<any, any>>(element: E, propsDeps: readonly unknown[]): ExtractResourceReturnType<E>;
4
4
  //# sourceMappingURL=tap-resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tap-resource.d.ts","sourceRoot":"","sources":["../../src/hooks/tap-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,yBAAsB;AAY3E,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EAC7D,OAAO,EAAE,CAAC,GACT,yBAAyB,CAAC,CAAC,CAAC,CAAC;AAChC,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EAC7D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,SAAS,OAAO,EAAE,GAC5B,yBAAyB,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"tap-resource.d.ts","sourceRoot":"","sources":["../../src/hooks/tap-resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,yBAAsB;AAYhF,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EAC7D,OAAO,EAAE,CAAC,GACT,yBAAyB,CAAC,CAAC,CAAC,CAAC;AAChC,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EAC7D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,SAAS,OAAO,EAAE,GAC5B,yBAAyB,CAAC,CAAC,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- import { ExtractResourceReturnType, ResourceElement } from "../core/types.js";
1
+ import type { ExtractResourceReturnType, ResourceElement } from "../core/types.js";
2
2
  export declare function tapResources<E extends ResourceElement<any, any>>(getElements: () => readonly E[], getElementsDeps?: readonly unknown[]): ExtractResourceReturnType<E>[];
3
3
  //# sourceMappingURL=tap-resources.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tap-resources.d.ts","sourceRoot":"","sources":["../../src/hooks/tap-resources.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAEzB,eAAe,EAEhB,yBAAsB;AAsBvB,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EAC9D,WAAW,EAAE,MAAM,SAAS,CAAC,EAAE,EAC/B,eAAe,CAAC,EAAE,SAAS,OAAO,EAAE,GACnC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAqHhC"}
1
+ {"version":3,"file":"tap-resources.d.ts","sourceRoot":"","sources":["../../src/hooks/tap-resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EAEzB,eAAe,EAEhB,yBAAsB;AAsBvB,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EAC9D,WAAW,EAAE,MAAM,SAAS,CAAC,EAAE,EAC/B,eAAe,CAAC,EAAE,SAAS,OAAO,EAAE,GACnC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAqHhC"}
@@ -1,4 +1,4 @@
1
- import { Cell } from "../../core/types.js";
1
+ import type { Cell } from "../../core/types.js";
2
2
  export declare const tapHook: <T extends Cell["type"]>(type: T, init: () => Cell) => Cell & {
3
3
  type: T;
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tapHook.d.ts","sourceRoot":"","sources":["../../../src/hooks/utils/tapHook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,4BAAyB;AAExC,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,EAC5C,MAAM,CAAC,EACP,MAAM,MAAM,IAAI,KACf,IAAI,GAAG;IAAE,IAAI,EAAE,CAAC,CAAA;CAuBlB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,IAAI,SAGvD,CAAC"}
1
+ {"version":3,"file":"tapHook.d.ts","sourceRoot":"","sources":["../../../src/hooks/utils/tapHook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,4BAAyB;AAE7C,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,EAC5C,MAAM,CAAC,EACP,MAAM,MAAM,IAAI,KACf,IAAI,GAAG;IAAE,IAAI,EAAE,CAAC,CAAA;CAuBlB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,IAAI,SAGvD,CAAC"}
@@ -1,3 +1,3 @@
1
- import { type ExtractResourceReturnType, type ResourceElement } from "../core/types.js";
1
+ import type { ExtractResourceReturnType, ResourceElement } from "../core/types.js";
2
2
  export declare function useResource<E extends ResourceElement<any, any>>(element: E): ExtractResourceReturnType<E>;
3
3
  //# sourceMappingURL=use-resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-resource.d.ts","sourceRoot":"","sources":["../../src/react/use-resource.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACrB,yBAAsB;AAwBvB,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EAC7D,OAAO,EAAE,CAAC,GACT,yBAAyB,CAAC,CAAC,CAAC,CA2B9B"}
1
+ {"version":3,"file":"use-resource.d.ts","sourceRoot":"","sources":["../../src/react/use-resource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,yBAAyB,EACzB,eAAe,EAChB,yBAAsB;AA0BvB,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,EAC7D,OAAO,EAAE,CAAC,GACT,yBAAyB,CAAC,CAAC,CAAC,CA2B9B"}
@@ -5,8 +5,10 @@ import { commitRoot, createResourceFiberRoot, setRootVersion, } from "../core/he
5
5
  const useDevStrictMode = () => {
6
6
  if (!isDevelopment)
7
7
  return null;
8
+ // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
8
9
  const count = useRef(0);
9
10
  const isFirstRender = count.current === 0;
11
+ // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
10
12
  useState(() => count.current++);
11
13
  if (count.current !== 2)
12
14
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"use-resource.js","sourceRoot":"","sources":["../../src/react/use-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAM/E,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,iCAA8B;AAC/B,OAAO,EAAE,aAAa,EAAE,+BAA4B;AACpD,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,cAAc,GACf,gCAA6B;AAE9B,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC5B,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;IAC1C,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,aAAa,CAAC,CAAC,CAAE,OAAiB,CAAC,CAAC,CAAE,MAAgB,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,UAAU,WAAW,CACzB,OAAU;IAEV,MAAM,IAAI,GAAG,OAAO,CAAoB,GAAG,EAAE;QAC3C,OAAO,uBAAuB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAS,EAAE,EAAiB,EAAE,EAAE;QACtE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE9B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,KAAK,OAAO,CAAC,GAAG,CAAC;QACjB,OAAO,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3E,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzD,eAAe,CAAC,GAAG,EAAE;QACnB,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,eAAe,CAAC,GAAG,EAAE;QACnB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"use-resource.js","sourceRoot":"","sources":["../../src/react/use-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAM/E,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,iCAA8B;AAC/B,OAAO,EAAE,aAAa,EAAE,+BAA4B;AACpD,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,cAAc,GACf,gCAA6B;AAE9B,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC5B,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,6FAA6F;IAC7F,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;IAC1C,6FAA6F;IAC7F,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,aAAa,CAAC,CAAC,CAAE,OAAiB,CAAC,CAAC,CAAE,MAAgB,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,UAAU,WAAW,CACzB,OAAU;IAEV,MAAM,IAAI,GAAG,OAAO,CAAoB,GAAG,EAAE;QAC3C,OAAO,uBAAuB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAS,EAAE,EAAiB,EAAE,EAAE;QACtE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE9B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,KAAK,OAAO,CAAC,GAAG,CAAC;QACjB,OAAO,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3E,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzD,eAAe,CAAC,GAAG,EAAE;QACnB,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,eAAe,CAAC,GAAG,EAAE;QACnB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ResourceElement } from "./core/types.js";
1
+ import type { ResourceElement } from "./core/types.js";
2
2
  export declare namespace tapResourceRoot {
3
3
  type Unsubscribe = () => void;
4
4
  interface SubscribableResource<TState> {
@@ -1 +1 @@
1
- {"version":3,"file":"tapResourceRoot.d.ts","sourceRoot":"","sources":["../src/tapResourceRoot.ts"],"names":[],"mappings":"AAYA,OAAO,EAAgB,eAAe,EAAE,wBAAqB;AAQ7D,yBAAiB,eAAe,CAAC;IAC/B,KAAY,WAAW,GAAG,MAAM,IAAI,CAAC;IAErC,UAAiB,oBAAoB,CAAC,MAAM;QAC1C;;WAEG;QACH,QAAQ,IAAI,MAAM,CAAC;QAEnB;;WAEG;QACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;KAC9C;CACF;AAID,eAAO,MAAM,eAAe,GAAI,MAAM,EACpC,SAAS,eAAe,CAAC,MAAM,CAAC,KAC/B,eAAe,CAAC,oBAAoB,CAAC,MAAM,CA0F7C,CAAC"}
1
+ {"version":3,"file":"tapResourceRoot.d.ts","sourceRoot":"","sources":["../src/tapResourceRoot.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAgB,eAAe,EAAE,wBAAqB;AAQlE,yBAAiB,eAAe,CAAC;IAC/B,KAAY,WAAW,GAAG,MAAM,IAAI,CAAC;IAErC,UAAiB,oBAAoB,CAAC,MAAM;QAC1C;;WAEG;QACH,QAAQ,IAAI,MAAM,CAAC;QAEnB;;WAEG;QACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;KAC9C;CACF;AAID,eAAO,MAAM,eAAe,GAAI,MAAM,EACpC,SAAS,eAAe,CAAC,MAAM,CAAC,KAC/B,eAAe,CAAC,oBAAoB,CAAC,MAAM,CA4F7C,CAAC"}
@@ -51,6 +51,7 @@ export const tapResourceRoot = (element) => {
51
51
  if (scheduler.isDirty || valueRef.current === render.output)
52
52
  return;
53
53
  valueRef.current = render.output;
54
+ // biome-ignore lint/suspicious/useIterableCallbackReturn: forEach callback intentionally has no return
54
55
  subscribers.forEach((callback) => callback());
55
56
  });
56
57
  tapEffect(() => {
@@ -67,6 +68,7 @@ export const tapResourceRoot = (element) => {
67
68
  if (scheduler.isDirty || valueRef.current === render.output)
68
69
  return;
69
70
  valueRef.current = render.output;
71
+ // biome-ignore lint/suspicious/useIterableCallbackReturn: forEach callback intentionally has no return
70
72
  subscribers.forEach((callback) => callback());
71
73
  });
72
74
  return tapMemo(() => ({
@@ -1 +1 @@
1
- {"version":3,"file":"tapResourceRoot.js","sourceRoot":"","sources":["../src/tapResourceRoot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tapResourceRoot.js","sourceRoot":"","sources":["../src/tapResourceRoot.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistant-ui/tap",
3
- "version": "0.5.8",
3
+ "version": "0.5.9",
4
4
  "description": "Zero-dependency reactive state management inspired by React hooks",
5
5
  "keywords": [
6
6
  "state-management",
@@ -49,12 +49,12 @@
49
49
  "@types/node": "^25.6.0",
50
50
  "@types/react": "^19.2.14",
51
51
  "@types/react-dom": "^19.2.3",
52
- "@vitest/ui": "^4.1.4",
52
+ "@vitest/ui": "^4.1.5",
53
53
  "jsdom": "^29.0.2",
54
54
  "react": "^19.2.5",
55
55
  "react-dom": "^19.2.5",
56
- "vitest": "^4.1.4",
57
- "@assistant-ui/x-buildutils": "0.0.5"
56
+ "vitest": "^4.1.5",
57
+ "@assistant-ui/x-buildutils": "0.0.6"
58
58
  },
59
59
  "publishConfig": {
60
60
  "access": "public",
@@ -104,6 +104,7 @@ describe("tapEffect - Basic Functionality", () => {
104
104
  ];
105
105
 
106
106
  const testFiber = createTestResource(() => {
107
+ // biome-ignore lint/suspicious/useIterableCallbackReturn: forEach callback intentionally has no return
107
108
  effects.forEach((fn) => tapEffect(fn));
108
109
  return null;
109
110
  });
@@ -10,11 +10,6 @@ import {
10
10
  createCounterResource,
11
11
  } from "../test-utils";
12
12
 
13
- // ============================================================================
14
- // Test Resources
15
- // ============================================================================
16
-
17
- // Simple counter that just returns the value
18
13
  const SimpleCounter = resource(createCounterResource());
19
14
 
20
15
  // Stateful counter that tracks its own count
@@ -47,10 +42,6 @@ const TrackingCounter = resource((props: { value: number; id: string }) => {
47
42
  };
48
43
  });
49
44
 
50
- // ============================================================================
51
- // Tests
52
- // ============================================================================
53
-
54
45
  describe("tapResources - Basic Functionality", () => {
55
46
  afterEach(() => {
56
47
  cleanupAllResources();
@@ -13,6 +13,7 @@ describe("Lifecycle - Mount/Unmount", () => {
13
13
  const effects = [vi.fn(), vi.fn(), vi.fn()];
14
14
 
15
15
  const resource = createTestResource(() => {
16
+ // biome-ignore lint/suspicious/useIterableCallbackReturn: forEach callback intentionally has no return
16
17
  effects.forEach((fn) => tapEffect(fn));
17
18
  return null;
18
19
  });
@@ -35,9 +36,11 @@ describe("Lifecycle - Mount/Unmount", () => {
35
36
  });
36
37
 
37
38
  renderTest(resource, undefined);
39
+ // biome-ignore lint/suspicious/useIterableCallbackReturn: forEach callback intentionally has no return
38
40
  cleanups.forEach((fn) => expect(fn).not.toHaveBeenCalled());
39
41
 
40
42
  unmountResource(resource);
43
+ // biome-ignore lint/suspicious/useIterableCallbackReturn: forEach callback intentionally has no return
41
44
  cleanups.forEach((fn) => expect(fn).toHaveBeenCalledTimes(1));
42
45
  });
43
46
 
@@ -32,11 +32,16 @@ describe("Concurrent Mode with useResource", () => {
32
32
 
33
33
  return (
34
34
  <>
35
- <button data-testid="hello-btn" onClick={() => setMessage("hello")} />
35
+ <button
36
+ type="button"
37
+ data-testid="hello-btn"
38
+ onClick={() => setMessage("hello")}
39
+ />
36
40
  <div data-testid="message">{message}</div>
37
41
  <div data-testid="load">{load ? "true" : "false"}</div>
38
42
 
39
43
  <button
44
+ type="button"
40
45
  data-testid="suspend-btn"
41
46
  onClick={() => {
42
47
  startTransition(() => {
@@ -89,11 +94,16 @@ describe("Concurrent Mode with useResource", () => {
89
94
 
90
95
  return (
91
96
  <>
92
- <button data-testid="hello-btn" onClick={() => setMessage("hello")} />
97
+ <button
98
+ type="button"
99
+ data-testid="hello-btn"
100
+ onClick={() => setMessage("hello")}
101
+ />
93
102
  <div data-testid="message">{message}</div>
94
103
  <div data-testid="load">{load ? "true" : "false"}</div>
95
104
 
96
105
  <button
106
+ type="button"
97
107
  data-testid="suspend-btn"
98
108
  onClick={() => {
99
109
  startTransition(() => {
@@ -151,6 +161,7 @@ describe("Concurrent Mode with useResource", () => {
151
161
  return (
152
162
  <div>
153
163
  <button
164
+ type="button"
154
165
  data-testid="btn"
155
166
  onClick={() => {
156
167
  shouldSuspend = true;
@@ -199,11 +210,16 @@ describe("Concurrent Mode with useResource", () => {
199
210
 
200
211
  return (
201
212
  <>
202
- <button data-testid="hello-btn" onClick={() => setMessage("hello")} />
213
+ <button
214
+ type="button"
215
+ data-testid="hello-btn"
216
+ onClick={() => setMessage("hello")}
217
+ />
203
218
  <div data-testid="message">{message}</div>
204
219
  <div data-testid="load">{load ? "true" : "false"}</div>
205
220
 
206
221
  <button
222
+ type="button"
207
223
  data-testid="suspend-btn"
208
224
  onClick={() => {
209
225
  startTransition(() => {
@@ -111,6 +111,7 @@ describe("React Strict Mode - Rerender Sources", () => {
111
111
 
112
112
  return (
113
113
  <button
114
+ type="button"
114
115
  onClick={() => {
115
116
  events.push("click");
116
117
  setCount(count + 1);
@@ -149,6 +150,7 @@ describe("React Strict Mode - Rerender Sources", () => {
149
150
 
150
151
  return (
151
152
  <button
153
+ type="button"
152
154
  onClick={() => {
153
155
  events.push("click");
154
156
  setCount((c) => c + 1);
@@ -284,6 +286,7 @@ describe("React Strict Mode - Rerender Sources", () => {
284
286
 
285
287
  return (
286
288
  <button
289
+ type="button"
287
290
  onClick={() => {
288
291
  events.push("click");
289
292
  setCount1(1);
@@ -442,7 +445,11 @@ describe("React Strict Mode - Rerender Sources", () => {
442
445
  };
443
446
  }, [count]);
444
447
 
445
- return <button onClick={() => setCount((c) => c + 1)}>Click</button>;
448
+ return (
449
+ <button type="button" onClick={() => setCount((c) => c + 1)}>
450
+ Click
451
+ </button>
452
+ );
446
453
  }
447
454
 
448
455
  const { getByRole } = render(
@@ -6,13 +6,9 @@ import {
6
6
  renderResourceFiber,
7
7
  commitResourceFiber,
8
8
  } from "../core/ResourceFiber";
9
- import { ResourceFiber } from "../core/types";
9
+ import type { ResourceFiber } from "../core/types";
10
10
  import { tapState } from "../hooks/tap-state";
11
11
 
12
- // ============================================================================
13
- // Resource Creation
14
- // ============================================================================
15
-
16
12
  /**
17
13
  * Creates a test resource fiber for unit testing.
18
14
  * This is a low-level utility that creates a ResourceFiber directly.
@@ -38,10 +34,6 @@ export function createTestResource<R, P>(fn: (props: P) => R) {
38
34
  return fiber;
39
35
  }
40
36
 
41
- // ============================================================================
42
- // Resource Lifecycle Management
43
- // ============================================================================
44
-
45
37
  // Track resources for cleanup
46
38
  const activeResources = new Set<ResourceFiber<any, any>>();
47
39
  const propsMap = new WeakMap<ResourceFiber<any, any>, any>();
@@ -82,6 +74,7 @@ export function unmountResource<R, P>(fiber: ResourceFiber<R, P>) {
82
74
  * Cleans up all resources. Should be called after each test.
83
75
  */
84
76
  export function cleanupAllResources() {
77
+ // biome-ignore lint/suspicious/useIterableCallbackReturn: forEach callback intentionally has no return
85
78
  activeResources.forEach((fiber) => unmountResourceFiber(fiber));
86
79
  activeResources.clear();
87
80
  }
@@ -100,10 +93,6 @@ export function getCommittedOutput<R, P>(fiber: ResourceFiber<R, P>): R {
100
93
  return lastResult.output;
101
94
  }
102
95
 
103
- // ============================================================================
104
- // Test Helpers
105
- // ============================================================================
106
-
107
96
  /**
108
97
  * Helper to subscribe to resource state changes for testing.
109
98
  * Tracks call count and latest state value.
@@ -164,10 +153,6 @@ export class TestResourceManager<R, P> {
164
153
  }
165
154
  }
166
155
 
167
- // ============================================================================
168
- // Async Utilities
169
- // ============================================================================
170
-
171
156
  /**
172
157
  * Waits for the next tick of the event loop.
173
158
  * Useful for testing async state updates.
@@ -194,10 +179,6 @@ export async function waitFor(
194
179
  }
195
180
  }
196
181
 
197
- // ============================================================================
198
- // Test Data Factories
199
- // ============================================================================
200
-
201
182
  /**
202
183
  * Creates a simple counter resource for testing.
203
184
  * Commonly used across multiple test files.
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  ResourceFiber,
3
3
  RenderResult,
4
4
  Resource,
@@ -1,4 +1,4 @@
1
- import { ResourceElement } from "./types";
1
+ import type { ResourceElement } from "./types";
2
2
  import {
3
3
  createResourceFiber,
4
4
  unmountResourceFiber,
@@ -1,4 +1,4 @@
1
- import { Resource } from "../types";
1
+ import type { Resource } from "../types";
2
2
 
3
3
  /**
4
4
  * Renders a resource with the given props.
@@ -1,4 +1,4 @@
1
- import { ResourceFiber, RenderResult } from "../types";
1
+ import type { ResourceFiber, RenderResult } from "../types";
2
2
 
3
3
  export function commitAllEffects(renderResult: RenderResult): void {
4
4
  const errors: unknown[] = [];
@@ -1,5 +1,5 @@
1
1
  import { isDevelopment } from "./env";
2
- import { ResourceFiber } from "../types";
2
+ import type { ResourceFiber } from "../types";
3
3
 
4
4
  let currentResourceFiber: ResourceFiber<any, any> | null = null;
5
5
 
@@ -1,4 +1,4 @@
1
- import { Cell, ResourceFiber, ResourceFiberRoot } from "../types";
1
+ import type { Cell, ResourceFiber, ResourceFiberRoot } from "../types";
2
2
 
3
3
  export const createResourceFiberRoot = (
4
4
  dispatchUpdate: (cb: () => boolean) => void,
@@ -49,6 +49,7 @@ export const setRootVersion = (
49
49
  root.changelog.pop();
50
50
  }
51
51
 
52
+ // biome-ignore lint/suspicious/useIterableCallbackReturn: forEach callback intentionally has no return
52
53
  root.changelog.forEach((apply) => apply());
53
54
  commitRoot(root);
54
55
  }
@@ -1,4 +1,4 @@
1
- import { ResourceElement } from "./types";
1
+ import type { ResourceElement } from "./types";
2
2
  import { fnSymbol } from "./helpers/callResourceFn";
3
3
 
4
4
  export function resource<R>(fn: () => R): () => ResourceElement<R, undefined>;
package/src/core/types.ts CHANGED
@@ -36,7 +36,7 @@ export type Cell =
36
36
  }
37
37
  | {
38
38
  readonly type: "effect";
39
- cleanup: tapEffect.Destructor | void;
39
+ cleanup: tapEffect.Destructor | undefined;
40
40
  deps: readonly unknown[] | null | undefined;
41
41
  };
42
42
 
@@ -1,4 +1,4 @@
1
- import { ResourceElement } from "./types";
1
+ import type { ResourceElement } from "./types";
2
2
 
3
3
  export function withKey<E extends ResourceElement<any, any>>(
4
4
  key: string | number,
@@ -29,17 +29,13 @@ export function tapEffectEvent<T extends (...args: any[]) => any>(
29
29
  callbackRef.current = callback;
30
30
  });
31
31
 
32
- if (isDevelopment) {
33
- const fiber = getCurrentResourceFiber();
34
- return tapCallback(
35
- ((...args: Parameters<T>) => {
36
- if (fiber.renderContext)
37
- throw new Error("tapEffectEvent cannot be called during render");
38
- return callbackRef.current(...args);
39
- }) as T,
40
- [fiber],
41
- );
42
- }
43
-
44
- return callbackRef.current;
32
+ const fiber = getCurrentResourceFiber();
33
+ return tapCallback(
34
+ ((...args: Parameters<T>) => {
35
+ if (isDevelopment && fiber.renderContext)
36
+ throw new Error("tapEffectEvent cannot be called during render");
37
+ return callbackRef.current(...args);
38
+ }) as T,
39
+ [fiber],
40
+ );
45
41
  }
@@ -1,4 +1,4 @@
1
- import { Cell } from "../core/types";
1
+ import type { Cell } from "../core/types";
2
2
  import { depsShallowEqual } from "./utils/depsShallowEqual";
3
3
  import { tapHook, registerRenderMountTask } from "./utils/tapHook";
4
4
 
@@ -10,7 +10,7 @@ const newEffect = (): Cell & { type: "effect" } => ({
10
10
 
11
11
  export namespace tapEffect {
12
12
  export type Destructor = () => void;
13
- export type EffectCallback = () => void | Destructor;
13
+ export type EffectCallback = () => Destructor | undefined;
14
14
  }
15
15
 
16
16
  export function tapEffect(effect: tapEffect.EffectCallback): void;
@@ -1,6 +1,6 @@
1
1
  import { isDevelopment } from "../core/helpers/env";
2
2
  import { getCurrentResourceFiber } from "../core/helpers/execution-context";
3
- import { ReducerQueueEntry, ResourceFiber } from "../core/types";
3
+ import type { ReducerQueueEntry, ResourceFiber } from "../core/types";
4
4
  import { markCellDirty } from "../core/helpers/root";
5
5
  import { tapHook } from "./utils/tapHook";
6
6
 
@@ -1,4 +1,4 @@
1
- import { ExtractResourceReturnType, ResourceElement } from "../core/types";
1
+ import type { ExtractResourceReturnType, ResourceElement } from "../core/types";
2
2
  import { tapEffect } from "./tap-effect";
3
3
  import {
4
4
  createResourceFiber,
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  ExtractResourceReturnType,
3
3
  RenderResult,
4
4
  ResourceElement,
@@ -1,5 +1,5 @@
1
1
  import { getCurrentResourceFiber } from "../../core/helpers/execution-context";
2
- import { Cell } from "../../core/types";
2
+ import type { Cell } from "../../core/types";
3
3
 
4
4
  export const tapHook = <T extends Cell["type"]>(
5
5
  type: T,
@@ -1,8 +1,8 @@
1
1
  import { useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
2
- import {
2
+ import type {
3
3
  ResourceFiberRoot,
4
- type ExtractResourceReturnType,
5
- type ResourceElement,
4
+ ExtractResourceReturnType,
5
+ ResourceElement,
6
6
  } from "../core/types";
7
7
  import {
8
8
  createResourceFiber,
@@ -20,8 +20,10 @@ import {
20
20
  const useDevStrictMode = () => {
21
21
  if (!isDevelopment) return null;
22
22
 
23
+ // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
23
24
  const count = useRef(0);
24
25
  const isFirstRender = count.current === 0;
26
+ // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
25
27
  useState(() => count.current++);
26
28
  if (count.current !== 2) return null;
27
29
  return isFirstRender ? ("child" as const) : ("root" as const);
@@ -10,7 +10,7 @@ import { tapMemo } from "./hooks/tap-memo";
10
10
  import { tapEffect } from "./hooks/tap-effect";
11
11
  import { tapEffectEvent } from "./hooks/tap-effect-event";
12
12
  import { tapRef } from "./hooks/tap-ref";
13
- import { RenderResult, ResourceElement } from "./core/types";
13
+ import type { RenderResult, ResourceElement } from "./core/types";
14
14
  import { isDevelopment } from "./core/helpers/env";
15
15
  import {
16
16
  commitRoot,
@@ -97,6 +97,7 @@ export const tapResourceRoot = <TState>(
97
97
 
98
98
  if (scheduler.isDirty || valueRef.current === render.output) return;
99
99
  valueRef.current = render.output;
100
+ // biome-ignore lint/suspicious/useIterableCallbackReturn: forEach callback intentionally has no return
100
101
  subscribers.forEach((callback) => callback());
101
102
  });
102
103
 
@@ -115,6 +116,7 @@ export const tapResourceRoot = <TState>(
115
116
 
116
117
  if (scheduler.isDirty || valueRef.current === render.output) return;
117
118
  valueRef.current = render.output;
119
+ // biome-ignore lint/suspicious/useIterableCallbackReturn: forEach callback intentionally has no return
118
120
  subscribers.forEach((callback) => callback());
119
121
  });
120
122