rexfect 0.0.7

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 (190) hide show
  1. package/README.md +1756 -0
  2. package/dist/abortableContext.d.ts +3 -0
  3. package/dist/abortableContext.d.ts.map +1 -0
  4. package/dist/abortableContext.js +48 -0
  5. package/dist/abortableContext.js.map +1 -0
  6. package/dist/action.d.ts +64 -0
  7. package/dist/action.d.ts.map +1 -0
  8. package/dist/action.js +208 -0
  9. package/dist/action.js.map +1 -0
  10. package/dist/action.test.d.ts +2 -0
  11. package/dist/action.test.d.ts.map +1 -0
  12. package/dist/action.test.js +189 -0
  13. package/dist/action.test.js.map +1 -0
  14. package/dist/async/abortable-guard.d.ts +25 -0
  15. package/dist/async/abortable-guard.d.ts.map +1 -0
  16. package/dist/async/abortable-guard.js +33 -0
  17. package/dist/async/abortable-guard.js.map +1 -0
  18. package/dist/async/abortable.d.ts +331 -0
  19. package/dist/async/abortable.d.ts.map +1 -0
  20. package/dist/async/abortable.js +410 -0
  21. package/dist/async/abortable.js.map +1 -0
  22. package/dist/async/abortable.test.d.ts +2 -0
  23. package/dist/async/abortable.test.d.ts.map +1 -0
  24. package/dist/async/abortable.test.js +535 -0
  25. package/dist/async/abortable.test.js.map +1 -0
  26. package/dist/async/abortable.typeCheck.d.ts +8 -0
  27. package/dist/async/abortable.typeCheck.d.ts.map +1 -0
  28. package/dist/async/abortable.typeCheck.js +138 -0
  29. package/dist/async/abortable.typeCheck.js.map +1 -0
  30. package/dist/async/async.d.ts +18 -0
  31. package/dist/async/async.d.ts.map +1 -0
  32. package/dist/async/async.js +20 -0
  33. package/dist/async/async.js.map +1 -0
  34. package/dist/async/index.d.ts +15 -0
  35. package/dist/async/index.d.ts.map +1 -0
  36. package/dist/async/index.js +13 -0
  37. package/dist/async/index.js.map +1 -0
  38. package/dist/async/loadable.d.ts +7 -0
  39. package/dist/async/loadable.d.ts.map +1 -0
  40. package/dist/async/loadable.js +52 -0
  41. package/dist/async/loadable.js.map +1 -0
  42. package/dist/async/loadable.test.d.ts +2 -0
  43. package/dist/async/loadable.test.d.ts.map +1 -0
  44. package/dist/async/loadable.test.js +322 -0
  45. package/dist/async/loadable.test.js.map +1 -0
  46. package/dist/async/promiseCache.d.ts +14 -0
  47. package/dist/async/promiseCache.d.ts.map +1 -0
  48. package/dist/async/promiseCache.js +29 -0
  49. package/dist/async/promiseCache.js.map +1 -0
  50. package/dist/async/read.d.ts +120 -0
  51. package/dist/async/read.d.ts.map +1 -0
  52. package/dist/async/read.js +286 -0
  53. package/dist/async/read.js.map +1 -0
  54. package/dist/async/read.test.d.ts +2 -0
  55. package/dist/async/read.test.d.ts.map +1 -0
  56. package/dist/async/read.test.js +419 -0
  57. package/dist/async/read.test.js.map +1 -0
  58. package/dist/async/read.typeCheck.d.ts +6 -0
  59. package/dist/async/read.typeCheck.d.ts.map +1 -0
  60. package/dist/async/read.typeCheck.js +101 -0
  61. package/dist/async/read.typeCheck.js.map +1 -0
  62. package/dist/async/safe.d.ts +230 -0
  63. package/dist/async/safe.d.ts.map +1 -0
  64. package/dist/async/safe.js +247 -0
  65. package/dist/async/safe.js.map +1 -0
  66. package/dist/async/safe.test.d.ts +2 -0
  67. package/dist/async/safe.test.d.ts.map +1 -0
  68. package/dist/async/safe.test.js +447 -0
  69. package/dist/async/safe.test.js.map +1 -0
  70. package/dist/async/utils.d.ts +17 -0
  71. package/dist/async/utils.d.ts.map +1 -0
  72. package/dist/async/utils.js +38 -0
  73. package/dist/async/utils.js.map +1 -0
  74. package/dist/async/wait.d.ts +120 -0
  75. package/dist/async/wait.d.ts.map +1 -0
  76. package/dist/async/wait.js +112 -0
  77. package/dist/async/wait.js.map +1 -0
  78. package/dist/async/wait.test.d.ts +2 -0
  79. package/dist/async/wait.test.d.ts.map +1 -0
  80. package/dist/async/wait.test.js +122 -0
  81. package/dist/async/wait.test.js.map +1 -0
  82. package/dist/async/wait.typeCheck.d.ts +6 -0
  83. package/dist/async/wait.typeCheck.d.ts.map +1 -0
  84. package/dist/async/wait.typeCheck.js +104 -0
  85. package/dist/async/wait.typeCheck.js.map +1 -0
  86. package/dist/atom.d.ts +46 -0
  87. package/dist/atom.d.ts.map +1 -0
  88. package/dist/atom.js +86 -0
  89. package/dist/atom.js.map +1 -0
  90. package/dist/atom.test.d.ts +2 -0
  91. package/dist/atom.test.d.ts.map +1 -0
  92. package/dist/atom.test.js +75 -0
  93. package/dist/atom.test.js.map +1 -0
  94. package/dist/batch.d.ts +15 -0
  95. package/dist/batch.d.ts.map +1 -0
  96. package/dist/batch.js +45 -0
  97. package/dist/batch.js.map +1 -0
  98. package/dist/defer.d.ts +56 -0
  99. package/dist/defer.d.ts.map +1 -0
  100. package/dist/defer.js +49 -0
  101. package/dist/defer.js.map +1 -0
  102. package/dist/effect.d.ts +91 -0
  103. package/dist/effect.d.ts.map +1 -0
  104. package/dist/effect.js +311 -0
  105. package/dist/effect.js.map +1 -0
  106. package/dist/effect.test.d.ts +2 -0
  107. package/dist/effect.test.d.ts.map +1 -0
  108. package/dist/effect.test.js +123 -0
  109. package/dist/effect.test.js.map +1 -0
  110. package/dist/emitter.d.ts +129 -0
  111. package/dist/emitter.d.ts.map +1 -0
  112. package/dist/emitter.js +164 -0
  113. package/dist/emitter.js.map +1 -0
  114. package/dist/emitter.test.d.ts +2 -0
  115. package/dist/emitter.test.d.ts.map +1 -0
  116. package/dist/emitter.test.js +259 -0
  117. package/dist/emitter.test.js.map +1 -0
  118. package/dist/equality.d.ts +66 -0
  119. package/dist/equality.d.ts.map +1 -0
  120. package/dist/equality.js +145 -0
  121. package/dist/equality.js.map +1 -0
  122. package/dist/event.d.ts +18 -0
  123. package/dist/event.d.ts.map +1 -0
  124. package/dist/event.js +166 -0
  125. package/dist/event.js.map +1 -0
  126. package/dist/event.test.d.ts +2 -0
  127. package/dist/event.test.d.ts.map +1 -0
  128. package/dist/event.test.js +167 -0
  129. package/dist/event.test.js.map +1 -0
  130. package/dist/hooks.d.ts +152 -0
  131. package/dist/hooks.d.ts.map +1 -0
  132. package/dist/hooks.js +122 -0
  133. package/dist/hooks.js.map +1 -0
  134. package/dist/hooks.test.d.ts +2 -0
  135. package/dist/hooks.test.d.ts.map +1 -0
  136. package/dist/hooks.test.js +99 -0
  137. package/dist/hooks.test.js.map +1 -0
  138. package/dist/index.d.ts +33 -0
  139. package/dist/index.d.ts.map +1 -0
  140. package/dist/index.js +35 -0
  141. package/dist/index.js.map +1 -0
  142. package/dist/isPromiseLike.d.ts +10 -0
  143. package/dist/isPromiseLike.d.ts.map +1 -0
  144. package/dist/isPromiseLike.js +15 -0
  145. package/dist/isPromiseLike.js.map +1 -0
  146. package/dist/pick.d.ts +22 -0
  147. package/dist/pick.d.ts.map +1 -0
  148. package/dist/pick.js +46 -0
  149. package/dist/pick.js.map +1 -0
  150. package/dist/react/index.d.ts +8 -0
  151. package/dist/react/index.d.ts.map +1 -0
  152. package/dist/react/index.js +8 -0
  153. package/dist/react/index.js.map +1 -0
  154. package/dist/react/useRx.d.ts +14 -0
  155. package/dist/react/useRx.d.ts.map +1 -0
  156. package/dist/react/useRx.js +110 -0
  157. package/dist/react/useRx.js.map +1 -0
  158. package/dist/react/useRx.test.d.ts +2 -0
  159. package/dist/react/useRx.test.d.ts.map +1 -0
  160. package/dist/react/useRx.test.js +457 -0
  161. package/dist/react/useRx.test.js.map +1 -0
  162. package/dist/strictModeTest.d.ts +11 -0
  163. package/dist/strictModeTest.d.ts.map +1 -0
  164. package/dist/strictModeTest.js +41 -0
  165. package/dist/strictModeTest.js.map +1 -0
  166. package/dist/types.d.ts +606 -0
  167. package/dist/types.d.ts.map +1 -0
  168. package/dist/types.js +5 -0
  169. package/dist/types.js.map +1 -0
  170. package/dist/untrack.d.ts +14 -0
  171. package/dist/untrack.d.ts.map +1 -0
  172. package/dist/untrack.js +17 -0
  173. package/dist/untrack.js.map +1 -0
  174. package/dist/utils/withUse.d.ts +10 -0
  175. package/dist/utils/withUse.d.ts.map +1 -0
  176. package/dist/utils/withUse.js +21 -0
  177. package/dist/utils/withUse.js.map +1 -0
  178. package/dist/utils/withUse.test.d.ts +2 -0
  179. package/dist/utils/withUse.test.d.ts.map +1 -0
  180. package/dist/utils/withUse.test.js +233 -0
  181. package/dist/utils/withUse.test.js.map +1 -0
  182. package/dist/utils.d.ts +7 -0
  183. package/dist/utils.d.ts.map +1 -0
  184. package/dist/utils.js +7 -0
  185. package/dist/utils.js.map +1 -0
  186. package/dist/utils.test.d.ts +2 -0
  187. package/dist/utils.test.d.ts.map +1 -0
  188. package/dist/utils.test.js +119 -0
  189. package/dist/utils.test.js.map +1 -0
  190. package/package.json +64 -0
@@ -0,0 +1,99 @@
1
+ import { describe, it, expect, vi } from "vitest";
2
+ import { withHooks, getHooks } from "./hooks";
3
+ describe("hooks", () => {
4
+ describe("withHooks", () => {
5
+ it("should override hooks with object form", () => {
6
+ const originalScheduleNotify = getHooks().scheduleNotify;
7
+ const customScheduleNotify = vi.fn((fn) => fn());
8
+ const result = withHooks({ scheduleNotify: customScheduleNotify }, () => {
9
+ const hooks = getHooks();
10
+ hooks.scheduleNotify(() => { });
11
+ return "done";
12
+ });
13
+ expect(result).toBe("done");
14
+ expect(customScheduleNotify).toHaveBeenCalled();
15
+ // Original hooks should be restored
16
+ expect(getHooks().scheduleNotify).toBe(originalScheduleNotify);
17
+ });
18
+ it("should override hooks with function form", () => {
19
+ const trackFn = vi.fn();
20
+ const result = withHooks((prev) => {
21
+ // Function form receives previous hooks
22
+ expect(prev.scheduleNotify).toBeDefined();
23
+ return { track: trackFn };
24
+ }, () => {
25
+ const hooks = getHooks();
26
+ hooks.track?.({});
27
+ return 42;
28
+ });
29
+ expect(result).toBe(42);
30
+ expect(trackFn).toHaveBeenCalled();
31
+ });
32
+ it("should restore hooks after function returns", () => {
33
+ const originalHooks = getHooks();
34
+ withHooks({ track: vi.fn() }, () => {
35
+ expect(getHooks().track).toBeDefined();
36
+ });
37
+ expect(getHooks().track).toBe(originalHooks.track);
38
+ });
39
+ it("should restore hooks even if function throws", () => {
40
+ const originalHooks = getHooks();
41
+ expect(() => {
42
+ withHooks({ track: vi.fn() }, () => {
43
+ throw new Error("test error");
44
+ });
45
+ }).toThrow("test error");
46
+ expect(getHooks().track).toBe(originalHooks.track);
47
+ });
48
+ it("should support nested withHooks calls", () => {
49
+ const track1 = vi.fn();
50
+ const track2 = vi.fn();
51
+ withHooks({ track: track1 }, () => {
52
+ getHooks().track?.({});
53
+ expect(track1).toHaveBeenCalledTimes(1);
54
+ withHooks({ track: track2 }, () => {
55
+ getHooks().track?.({});
56
+ expect(track2).toHaveBeenCalledTimes(1);
57
+ expect(track1).toHaveBeenCalledTimes(1); // track1 not called again
58
+ });
59
+ // After inner withHooks, track1 should be active again
60
+ getHooks().track?.({});
61
+ expect(track1).toHaveBeenCalledTimes(2);
62
+ });
63
+ });
64
+ it("should merge hooks with previous hooks in function form", () => {
65
+ const scheduleCleanup = vi.fn();
66
+ withHooks({ scheduleCleanup }, () => {
67
+ withHooks((prev) => {
68
+ // Previous hooks should be available
69
+ expect(prev.scheduleCleanup).toBe(scheduleCleanup);
70
+ return { track: vi.fn() };
71
+ }, () => {
72
+ // Both scheduleCleanup and track should be available
73
+ expect(getHooks().scheduleCleanup).toBe(scheduleCleanup);
74
+ expect(getHooks().track).toBeDefined();
75
+ });
76
+ });
77
+ });
78
+ it("should return value from fn", () => {
79
+ const result = withHooks({}, () => {
80
+ return { foo: "bar", count: 123 };
81
+ });
82
+ expect(result).toEqual({ foo: "bar", count: 123 });
83
+ });
84
+ });
85
+ describe("getHooks", () => {
86
+ it("should return current hooks", () => {
87
+ const hooks = getHooks();
88
+ expect(hooks).toBeDefined();
89
+ expect(hooks.scheduleNotify).toBeDefined();
90
+ expect(typeof hooks.scheduleNotify).toBe("function");
91
+ });
92
+ it("should have default scheduleNotify that executes immediately", () => {
93
+ const fn = vi.fn();
94
+ getHooks().scheduleNotify(fn);
95
+ expect(fn).toHaveBeenCalledTimes(1);
96
+ });
97
+ });
98
+ });
99
+ //# sourceMappingURL=hooks.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.test.js","sourceRoot":"","sources":["../src/hooks.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * rexfect - Minimal reactive state management
3
+ *
4
+ * Core primitives:
5
+ * - atom: Reactive state container
6
+ * - effect: Sync reactions to state changes
7
+ * - action: Dispatch primitive (with optional handler)
8
+ * - event: Alias for void action (for notifications)
9
+ * - batch: Group multiple updates
10
+ * - untrack: Read without tracking
11
+ * - pick: Fine-grained selectors
12
+ *
13
+ * Action<T, R>:
14
+ * - action<T>() = void action for notifications (use "on" prefix naming)
15
+ * - action<T, R>(handler) = action with handler that returns R
16
+ *
17
+ * Async utilities (from rexfect/async):
18
+ * - read: Suspense mode for Signals
19
+ * - wait: Promise mode for Promise/Action
20
+ * - loadable: Extract async state from promises
21
+ */
22
+ export { atom } from "./atom";
23
+ export { effect } from "./effect";
24
+ export { action } from "./action";
25
+ export { batch } from "./batch";
26
+ export { untrack } from "./untrack";
27
+ export { pick } from "./pick";
28
+ export { withUse as mapTuple } from "./utils/withUse";
29
+ export { strictEqual, shallowEqual, shallow2Equal, shallow3Equal, deepEqual, resolveEquality, } from "./equality";
30
+ export type { Signal, Setter, AtomOptions, ActionOptions, EffectOptions, EffectContext, Action, AbortableContext, UsableContext, Equality, EqualityShorthand, } from "./types";
31
+ export * from "./hooks";
32
+ export * from "./emitter";
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,MAAM,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,cAAc,SAAS,CAAC;AAExB,cAAc,WAAW,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,35 @@
1
+ /**
2
+ * rexfect - Minimal reactive state management
3
+ *
4
+ * Core primitives:
5
+ * - atom: Reactive state container
6
+ * - effect: Sync reactions to state changes
7
+ * - action: Dispatch primitive (with optional handler)
8
+ * - event: Alias for void action (for notifications)
9
+ * - batch: Group multiple updates
10
+ * - untrack: Read without tracking
11
+ * - pick: Fine-grained selectors
12
+ *
13
+ * Action<T, R>:
14
+ * - action<T>() = void action for notifications (use "on" prefix naming)
15
+ * - action<T, R>(handler) = action with handler that returns R
16
+ *
17
+ * Async utilities (from rexfect/async):
18
+ * - read: Suspense mode for Signals
19
+ * - wait: Promise mode for Promise/Action
20
+ * - loadable: Extract async state from promises
21
+ */
22
+ // Core primitives
23
+ export { atom } from "./atom";
24
+ export { effect } from "./effect";
25
+ export { action } from "./action";
26
+ export { batch } from "./batch";
27
+ export { untrack } from "./untrack";
28
+ export { pick } from "./pick";
29
+ // Utilities
30
+ export { withUse as mapTuple } from "./utils/withUse";
31
+ // Equality utilities
32
+ export { strictEqual, shallowEqual, shallow2Equal, shallow3Equal, deepEqual, resolveEquality, } from "./equality";
33
+ export * from "./hooks";
34
+ export * from "./emitter";
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,kBAAkB;AAClB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,YAAY;AACZ,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEtD,qBAAqB;AACrB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,YAAY,CAAC;AAiBpB,cAAc,SAAS,CAAC;AAExB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Check if a value is a PromiseLike (has a .then method).
3
+ *
4
+ * @example
5
+ * isPromiseLike(Promise.resolve(1)) // true
6
+ * isPromiseLike({ then: () => {} }) // true
7
+ * isPromiseLike(42) // false
8
+ */
9
+ export declare function isPromiseLike(value: unknown): value is PromiseLike<unknown>;
10
+ //# sourceMappingURL=isPromiseLike.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPromiseLike.d.ts","sourceRoot":"","sources":["../src/isPromiseLike.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAO3E"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Check if a value is a PromiseLike (has a .then method).
3
+ *
4
+ * @example
5
+ * isPromiseLike(Promise.resolve(1)) // true
6
+ * isPromiseLike({ then: () => {} }) // true
7
+ * isPromiseLike(42) // false
8
+ */
9
+ export function isPromiseLike(value) {
10
+ return (value !== null &&
11
+ typeof value === "object" &&
12
+ "then" in value &&
13
+ typeof value.then === "function");
14
+ }
15
+ //# sourceMappingURL=isPromiseLike.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPromiseLike.js","sourceRoot":"","sources":["../src/isPromiseLike.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,IAAI,KAAK;QACf,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,CAC1C,CAAC;AACJ,CAAC"}
package/dist/pick.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import type { Equality } from "./types";
2
+ /**
3
+ * Fine-grained selector for derived values.
4
+ * Only triggers updates when the selected value changes.
5
+ *
6
+ * @param fn - Selector function
7
+ * @param equals - Equality strategy (default: "strict")
8
+ * @returns The selected value
9
+ *
10
+ * @example
11
+ * effect(() => {
12
+ * // Only re-runs when user().name changes, not other user properties
13
+ * const name = pick(() => user().name);
14
+ * console.log("Name:", name);
15
+ * });
16
+ *
17
+ * @example
18
+ * // With equality shorthand for objects
19
+ * const profile = pick(() => user().profile, "shallow");
20
+ */
21
+ export declare function pick<T>(fn: () => T, equals?: Equality<T>): T;
22
+ //# sourceMappingURL=pick.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../src/pick.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAyB5D"}
package/dist/pick.js ADDED
@@ -0,0 +1,46 @@
1
+ import { atomInstance } from "./atom";
2
+ import { effect } from "./effect";
3
+ import { resolveEquality } from "./equality";
4
+ import { getHooks } from "./hooks";
5
+ import { untrack } from "./untrack";
6
+ /**
7
+ * Fine-grained selector for derived values.
8
+ * Only triggers updates when the selected value changes.
9
+ *
10
+ * @param fn - Selector function
11
+ * @param equals - Equality strategy (default: "strict")
12
+ * @returns The selected value
13
+ *
14
+ * @example
15
+ * effect(() => {
16
+ * // Only re-runs when user().name changes, not other user properties
17
+ * const name = pick(() => user().name);
18
+ * console.log("Name:", name);
19
+ * });
20
+ *
21
+ * @example
22
+ * // With equality shorthand for objects
23
+ * const profile = pick(() => user().profile, "shallow");
24
+ */
25
+ export function pick(fn, equals) {
26
+ const { track } = getHooks();
27
+ const equalsFn = resolveEquality(equals);
28
+ // In a reactive context, create an internal signal
29
+ if (track) {
30
+ // Compute initial value WITHOUT tracking to parent context
31
+ // Only the internal signal should be tracked by useRx
32
+ const { signal, setter } = atomInstance(untrack(fn), {
33
+ equals: equalsFn,
34
+ });
35
+ // Create inner effect to update the signal
36
+ effect(() => {
37
+ const value = fn();
38
+ setter(value);
39
+ });
40
+ track(signal);
41
+ return signal();
42
+ }
43
+ // Outside reactive context, just compute
44
+ return fn();
45
+ }
46
+ //# sourceMappingURL=pick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick.js","sourceRoot":"","sources":["../src/pick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,IAAI,CAAI,EAAW,EAAE,MAAoB;IACvD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEzC,mDAAmD;IACnD,IAAI,KAAK,EAAE,CAAC;QACV,2DAA2D;QAC3D,sDAAsD;QACtD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAI,OAAO,CAAC,EAAE,CAAC,EAAE;YACtD,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QAEH,2CAA2C;QAC3C,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,yCAAyC;IACzC,OAAO,EAAE,EAAE,CAAC;AACd,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * rexfect/react - React integration
3
+ *
4
+ * Provides hooks for using rexfect reactive state in React components.
5
+ */
6
+ export { useRx } from "./useRx";
7
+ export * from "../index";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,cAAc,UAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * rexfect/react - React integration
3
+ *
4
+ * Provides hooks for using rexfect reactive state in React components.
5
+ */
6
+ export { useRx } from "./useRx";
7
+ export * from "../index";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,cAAc,UAAU,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * React hook for reactive computations.
3
+ *
4
+ * Tracks signal reads during render and re-renders when they change.
5
+ * Compatible with React StrictMode.
6
+ *
7
+ * @example
8
+ * function Counter() {
9
+ * const count = useRx(() => countSignal());
10
+ * return <div>{count}</div>;
11
+ * }
12
+ */
13
+ export declare function useRx<T>(fn: () => T): T;
14
+ //# sourceMappingURL=useRx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRx.d.ts","sourceRoot":"","sources":["../../src/react/useRx.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAavC"}
@@ -0,0 +1,110 @@
1
+ import { useEffect, useRef, useReducer } from "react";
2
+ import { withHooks } from "../hooks";
3
+ import { untrack } from "../untrack";
4
+ /**
5
+ * React hook for reactive computations.
6
+ *
7
+ * Tracks signal reads during render and re-renders when they change.
8
+ * Compatible with React StrictMode.
9
+ *
10
+ * @example
11
+ * function Counter() {
12
+ * const count = useRx(() => countSignal());
13
+ * return <div>{count}</div>;
14
+ * }
15
+ */
16
+ export function useRx(fn) {
17
+ const controllerRef = useRef(null);
18
+ const [, rerender] = useReducer((x) => x + 1, 0);
19
+ if (controllerRef.current === null) {
20
+ controllerRef.current = new UseRxController(rerender);
21
+ }
22
+ // Commit: compare values, subscribe to signals
23
+ // Cleanup: unsubscribe using signals captured in closure
24
+ useEffect(() => controllerRef.current.commit());
25
+ return controllerRef.current.render(fn);
26
+ }
27
+ class UseRxController {
28
+ rerender;
29
+ // Signals tracked during render phase (pending until commit)
30
+ pendingSignals = new Map();
31
+ error;
32
+ constructor(rerender) {
33
+ this.rerender = rerender;
34
+ }
35
+ /**
36
+ * Render phase: track signals and save their values
37
+ */
38
+ render(fn) {
39
+ // Rethrow any error from previous commit
40
+ if (this.error !== undefined) {
41
+ const error = this.error;
42
+ this.error = undefined;
43
+ throw error;
44
+ }
45
+ // Clear pending from previous render
46
+ this.pendingSignals.clear();
47
+ // Track signals during fn execution
48
+ const result = withHooks({
49
+ track: (signal, onCleanup) => {
50
+ this.pendingSignals.set(signal, {
51
+ signal,
52
+ value: untrack(() => signal()),
53
+ onCleanup,
54
+ });
55
+ },
56
+ }, fn);
57
+ return result;
58
+ }
59
+ /**
60
+ * Commit phase (useEffect):
61
+ * 1. Compare current signal values with render values
62
+ * 2. Re-render if values changed
63
+ * 3. Subscribe to tracked signals
64
+ * 4. Return cleanup that unsubscribes (signals captured in closure)
65
+ */
66
+ commit() {
67
+ // Clone pendingSignals to capture current state for this commit
68
+ // Don't clear pendingSignals - let render() clear it
69
+ // This ensures StrictMode re-runs have access to the same signals
70
+ const trackedSignals = new Map(this.pendingSignals);
71
+ // Check if any signal value changed since render
72
+ let changed = false;
73
+ for (const entry of trackedSignals.values()) {
74
+ try {
75
+ const currentValue = untrack(() => entry.signal());
76
+ if (!Object.is(currentValue, entry.value)) {
77
+ changed = true;
78
+ break;
79
+ }
80
+ }
81
+ catch (error) {
82
+ this.error = error;
83
+ this.rerender();
84
+ return () => { };
85
+ }
86
+ }
87
+ // Re-render if values changed
88
+ if (changed) {
89
+ this.rerender();
90
+ }
91
+ // Subscribe to all tracked signals
92
+ const unsubscribes = [];
93
+ for (const entry of trackedSignals.values()) {
94
+ const unsub = entry.signal.on(() => {
95
+ this.rerender();
96
+ });
97
+ unsubscribes.push(unsub);
98
+ }
99
+ // Cleanup: unsubscribe using signals captured in closure
100
+ return () => {
101
+ for (const unsub of unsubscribes) {
102
+ unsub();
103
+ }
104
+ for (const entry of trackedSignals.values()) {
105
+ entry.onCleanup?.();
106
+ }
107
+ };
108
+ }
109
+ }
110
+ //# sourceMappingURL=useRx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRx.js","sourceRoot":"","sources":["../../src/react/useRx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useRx.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRx.test.d.ts","sourceRoot":"","sources":["../../src/react/useRx.test.tsx"],"names":[],"mappings":""}