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.
- package/README.md +1756 -0
- package/dist/abortableContext.d.ts +3 -0
- package/dist/abortableContext.d.ts.map +1 -0
- package/dist/abortableContext.js +48 -0
- package/dist/abortableContext.js.map +1 -0
- package/dist/action.d.ts +64 -0
- package/dist/action.d.ts.map +1 -0
- package/dist/action.js +208 -0
- package/dist/action.js.map +1 -0
- package/dist/action.test.d.ts +2 -0
- package/dist/action.test.d.ts.map +1 -0
- package/dist/action.test.js +189 -0
- package/dist/action.test.js.map +1 -0
- package/dist/async/abortable-guard.d.ts +25 -0
- package/dist/async/abortable-guard.d.ts.map +1 -0
- package/dist/async/abortable-guard.js +33 -0
- package/dist/async/abortable-guard.js.map +1 -0
- package/dist/async/abortable.d.ts +331 -0
- package/dist/async/abortable.d.ts.map +1 -0
- package/dist/async/abortable.js +410 -0
- package/dist/async/abortable.js.map +1 -0
- package/dist/async/abortable.test.d.ts +2 -0
- package/dist/async/abortable.test.d.ts.map +1 -0
- package/dist/async/abortable.test.js +535 -0
- package/dist/async/abortable.test.js.map +1 -0
- package/dist/async/abortable.typeCheck.d.ts +8 -0
- package/dist/async/abortable.typeCheck.d.ts.map +1 -0
- package/dist/async/abortable.typeCheck.js +138 -0
- package/dist/async/abortable.typeCheck.js.map +1 -0
- package/dist/async/async.d.ts +18 -0
- package/dist/async/async.d.ts.map +1 -0
- package/dist/async/async.js +20 -0
- package/dist/async/async.js.map +1 -0
- package/dist/async/index.d.ts +15 -0
- package/dist/async/index.d.ts.map +1 -0
- package/dist/async/index.js +13 -0
- package/dist/async/index.js.map +1 -0
- package/dist/async/loadable.d.ts +7 -0
- package/dist/async/loadable.d.ts.map +1 -0
- package/dist/async/loadable.js +52 -0
- package/dist/async/loadable.js.map +1 -0
- package/dist/async/loadable.test.d.ts +2 -0
- package/dist/async/loadable.test.d.ts.map +1 -0
- package/dist/async/loadable.test.js +322 -0
- package/dist/async/loadable.test.js.map +1 -0
- package/dist/async/promiseCache.d.ts +14 -0
- package/dist/async/promiseCache.d.ts.map +1 -0
- package/dist/async/promiseCache.js +29 -0
- package/dist/async/promiseCache.js.map +1 -0
- package/dist/async/read.d.ts +120 -0
- package/dist/async/read.d.ts.map +1 -0
- package/dist/async/read.js +286 -0
- package/dist/async/read.js.map +1 -0
- package/dist/async/read.test.d.ts +2 -0
- package/dist/async/read.test.d.ts.map +1 -0
- package/dist/async/read.test.js +419 -0
- package/dist/async/read.test.js.map +1 -0
- package/dist/async/read.typeCheck.d.ts +6 -0
- package/dist/async/read.typeCheck.d.ts.map +1 -0
- package/dist/async/read.typeCheck.js +101 -0
- package/dist/async/read.typeCheck.js.map +1 -0
- package/dist/async/safe.d.ts +230 -0
- package/dist/async/safe.d.ts.map +1 -0
- package/dist/async/safe.js +247 -0
- package/dist/async/safe.js.map +1 -0
- package/dist/async/safe.test.d.ts +2 -0
- package/dist/async/safe.test.d.ts.map +1 -0
- package/dist/async/safe.test.js +447 -0
- package/dist/async/safe.test.js.map +1 -0
- package/dist/async/utils.d.ts +17 -0
- package/dist/async/utils.d.ts.map +1 -0
- package/dist/async/utils.js +38 -0
- package/dist/async/utils.js.map +1 -0
- package/dist/async/wait.d.ts +120 -0
- package/dist/async/wait.d.ts.map +1 -0
- package/dist/async/wait.js +112 -0
- package/dist/async/wait.js.map +1 -0
- package/dist/async/wait.test.d.ts +2 -0
- package/dist/async/wait.test.d.ts.map +1 -0
- package/dist/async/wait.test.js +122 -0
- package/dist/async/wait.test.js.map +1 -0
- package/dist/async/wait.typeCheck.d.ts +6 -0
- package/dist/async/wait.typeCheck.d.ts.map +1 -0
- package/dist/async/wait.typeCheck.js +104 -0
- package/dist/async/wait.typeCheck.js.map +1 -0
- package/dist/atom.d.ts +46 -0
- package/dist/atom.d.ts.map +1 -0
- package/dist/atom.js +86 -0
- package/dist/atom.js.map +1 -0
- package/dist/atom.test.d.ts +2 -0
- package/dist/atom.test.d.ts.map +1 -0
- package/dist/atom.test.js +75 -0
- package/dist/atom.test.js.map +1 -0
- package/dist/batch.d.ts +15 -0
- package/dist/batch.d.ts.map +1 -0
- package/dist/batch.js +45 -0
- package/dist/batch.js.map +1 -0
- package/dist/defer.d.ts +56 -0
- package/dist/defer.d.ts.map +1 -0
- package/dist/defer.js +49 -0
- package/dist/defer.js.map +1 -0
- package/dist/effect.d.ts +91 -0
- package/dist/effect.d.ts.map +1 -0
- package/dist/effect.js +311 -0
- package/dist/effect.js.map +1 -0
- package/dist/effect.test.d.ts +2 -0
- package/dist/effect.test.d.ts.map +1 -0
- package/dist/effect.test.js +123 -0
- package/dist/effect.test.js.map +1 -0
- package/dist/emitter.d.ts +129 -0
- package/dist/emitter.d.ts.map +1 -0
- package/dist/emitter.js +164 -0
- package/dist/emitter.js.map +1 -0
- package/dist/emitter.test.d.ts +2 -0
- package/dist/emitter.test.d.ts.map +1 -0
- package/dist/emitter.test.js +259 -0
- package/dist/emitter.test.js.map +1 -0
- package/dist/equality.d.ts +66 -0
- package/dist/equality.d.ts.map +1 -0
- package/dist/equality.js +145 -0
- package/dist/equality.js.map +1 -0
- package/dist/event.d.ts +18 -0
- package/dist/event.d.ts.map +1 -0
- package/dist/event.js +166 -0
- package/dist/event.js.map +1 -0
- package/dist/event.test.d.ts +2 -0
- package/dist/event.test.d.ts.map +1 -0
- package/dist/event.test.js +167 -0
- package/dist/event.test.js.map +1 -0
- package/dist/hooks.d.ts +152 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +122 -0
- package/dist/hooks.js.map +1 -0
- package/dist/hooks.test.d.ts +2 -0
- package/dist/hooks.test.d.ts.map +1 -0
- package/dist/hooks.test.js +99 -0
- package/dist/hooks.test.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/isPromiseLike.d.ts +10 -0
- package/dist/isPromiseLike.d.ts.map +1 -0
- package/dist/isPromiseLike.js +15 -0
- package/dist/isPromiseLike.js.map +1 -0
- package/dist/pick.d.ts +22 -0
- package/dist/pick.d.ts.map +1 -0
- package/dist/pick.js +46 -0
- package/dist/pick.js.map +1 -0
- package/dist/react/index.d.ts +8 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +8 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/useRx.d.ts +14 -0
- package/dist/react/useRx.d.ts.map +1 -0
- package/dist/react/useRx.js +110 -0
- package/dist/react/useRx.js.map +1 -0
- package/dist/react/useRx.test.d.ts +2 -0
- package/dist/react/useRx.test.d.ts.map +1 -0
- package/dist/react/useRx.test.js +457 -0
- package/dist/react/useRx.test.js.map +1 -0
- package/dist/strictModeTest.d.ts +11 -0
- package/dist/strictModeTest.d.ts.map +1 -0
- package/dist/strictModeTest.js +41 -0
- package/dist/strictModeTest.js.map +1 -0
- package/dist/types.d.ts +606 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/untrack.d.ts +14 -0
- package/dist/untrack.d.ts.map +1 -0
- package/dist/untrack.js +17 -0
- package/dist/untrack.js.map +1 -0
- package/dist/utils/withUse.d.ts +10 -0
- package/dist/utils/withUse.d.ts.map +1 -0
- package/dist/utils/withUse.js +21 -0
- package/dist/utils/withUse.js.map +1 -0
- package/dist/utils/withUse.test.d.ts +2 -0
- package/dist/utils/withUse.test.d.ts.map +1 -0
- package/dist/utils/withUse.test.js +233 -0
- package/dist/utils/withUse.test.js.map +1 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +7 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.test.d.ts +2 -0
- package/dist/utils.test.d.ts.map +1 -0
- package/dist/utils.test.js +119 -0
- package/dist/utils.test.js.map +1 -0
- 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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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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
|
package/dist/pick.js.map
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,KAAK,CAAI,EAAW;IAClC,MAAM,aAAa,GAAG,MAAM,CAA4B,IAAI,CAAC,CAAC;IAC9D,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzD,IAAI,aAAa,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACnC,aAAa,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,+CAA+C;IAC/C,yDAAyD;IACzD,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAEjD,OAAO,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1C,CAAC;AAQD,MAAM,eAAe;IAKC;IAJpB,6DAA6D;IACrD,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;IACtD,KAAK,CAAU;IAEvB,YAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAE9C;;OAEG;IACH,MAAM,CAAC,EAAW;QAChB,yCAAyC;QACzC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,MAAM,KAAK,CAAC;QACd,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAE5B,oCAAoC;QACpC,MAAM,MAAM,GAAG,SAAS,CACtB;YACE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;gBAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE;oBAC9B,MAAM;oBACN,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;oBAC9B,SAAS;iBACV,CAAC,CAAC;YACL,CAAC;SACF,EACD,EAAE,CACH,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,MAAM;QACJ,gEAAgE;QAChE,qDAAqD;QACrD,kEAAkE;QAClE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEpD,iDAAiD;QACjD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1C,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACR,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;QAED,mCAAmC;QACnC,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE;gBACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,yDAAyD;QACzD,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;gBACjC,KAAK,EAAE,CAAC;YACV,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5C,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRx.test.d.ts","sourceRoot":"","sources":["../../src/react/useRx.test.tsx"],"names":[],"mappings":""}
|