@rlabs-inc/signals 0.2.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +238 -198
- package/dist/collections/date.d.ts +67 -0
- package/dist/collections/date.d.ts.map +1 -0
- package/dist/collections/map.d.ts +37 -0
- package/dist/collections/map.d.ts.map +1 -0
- package/dist/collections/set.d.ts +36 -0
- package/dist/collections/set.d.ts.map +1 -0
- package/dist/core/constants.d.ts +47 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/globals.d.ts +45 -0
- package/dist/core/globals.d.ts.map +1 -0
- package/dist/core/types.d.ts +76 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/deep/proxy.d.ts +19 -0
- package/dist/deep/proxy.d.ts.map +1 -0
- package/dist/index.d.ts +16 -277
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1268 -607
- package/dist/index.mjs +1267 -608
- package/dist/primitives/bind.d.ts +95 -0
- package/dist/primitives/bind.d.ts.map +1 -0
- package/dist/primitives/derived.d.ts +45 -0
- package/dist/primitives/derived.d.ts.map +1 -0
- package/dist/primitives/effect.d.ts +41 -0
- package/dist/primitives/effect.d.ts.map +1 -0
- package/dist/primitives/signal.d.ts +54 -0
- package/dist/primitives/signal.d.ts.map +1 -0
- package/dist/reactivity/batching.d.ts +56 -0
- package/dist/reactivity/batching.d.ts.map +1 -0
- package/dist/reactivity/equality.d.ts +36 -0
- package/dist/reactivity/equality.d.ts.map +1 -0
- package/dist/reactivity/scheduling.d.ts +26 -0
- package/dist/reactivity/scheduling.d.ts.map +1 -0
- package/dist/reactivity/tracking.d.ts +47 -0
- package/dist/reactivity/tracking.d.ts.map +1 -0
- package/package.json +6 -2
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A reactive Map with per-key granularity
|
|
3
|
+
*
|
|
4
|
+
* Three levels of reactivity:
|
|
5
|
+
* 1. Per-key signals: map.get('key') only tracks that specific key
|
|
6
|
+
* 2. Version signal: Tracks structural changes (add/delete)
|
|
7
|
+
* 3. Size signal: Tracks map size changes
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const users = new ReactiveMap<string, User>()
|
|
12
|
+
*
|
|
13
|
+
* effect(() => {
|
|
14
|
+
* // Only re-runs when 'alice' changes
|
|
15
|
+
* console.log(users.get('alice'))
|
|
16
|
+
* })
|
|
17
|
+
*
|
|
18
|
+
* users.set('bob', { name: 'Bob' }) // Doesn't trigger above effect
|
|
19
|
+
* users.set('alice', { name: 'Alice Updated' }) // Triggers effect
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class ReactiveMap<K, V> extends Map<K, V> {
|
|
23
|
+
#private;
|
|
24
|
+
constructor(entries?: Iterable<readonly [K, V]> | null);
|
|
25
|
+
get size(): number;
|
|
26
|
+
has(key: K): boolean;
|
|
27
|
+
get(key: K): V | undefined;
|
|
28
|
+
set(key: K, value: V): this;
|
|
29
|
+
delete(key: K): boolean;
|
|
30
|
+
clear(): void;
|
|
31
|
+
keys(): MapIterator<K>;
|
|
32
|
+
values(): MapIterator<V>;
|
|
33
|
+
entries(): MapIterator<[K, V]>;
|
|
34
|
+
forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: unknown): void;
|
|
35
|
+
[Symbol.iterator](): MapIterator<[K, V]>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/collections/map.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,WAAW,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;;gBAUlC,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI;IA4BtD,IAAI,IAAI,IAAI,MAAM,CAGjB;IAMD,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAwBpB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IA0B1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAsC3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAwBvB,KAAK,IAAI,IAAI;IAmBb,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC;IAKtB,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC;IAKxB,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAK9B,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAKxF,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAGzC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A reactive Set with per-item granularity
|
|
3
|
+
*
|
|
4
|
+
* Three levels of reactivity:
|
|
5
|
+
* 1. Per-item signals: set.has(item) only tracks that specific item
|
|
6
|
+
* 2. Version signal: Tracks structural changes (add/delete)
|
|
7
|
+
* 3. Size signal: Tracks set size changes
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const tags = new ReactiveSet<string>()
|
|
12
|
+
*
|
|
13
|
+
* effect(() => {
|
|
14
|
+
* // Only re-runs when 'important' membership changes
|
|
15
|
+
* console.log('Is important:', tags.has('important'))
|
|
16
|
+
* })
|
|
17
|
+
*
|
|
18
|
+
* tags.add('todo') // Doesn't trigger above effect
|
|
19
|
+
* tags.add('important') // Triggers effect
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class ReactiveSet<T> extends Set<T> {
|
|
23
|
+
#private;
|
|
24
|
+
constructor(values?: Iterable<T> | null);
|
|
25
|
+
get size(): number;
|
|
26
|
+
has(item: T): boolean;
|
|
27
|
+
add(item: T): this;
|
|
28
|
+
delete(item: T): boolean;
|
|
29
|
+
clear(): void;
|
|
30
|
+
keys(): SetIterator<T>;
|
|
31
|
+
values(): SetIterator<T>;
|
|
32
|
+
entries(): SetIterator<[T, T]>;
|
|
33
|
+
forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: unknown): void;
|
|
34
|
+
[Symbol.iterator](): SetIterator<T>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=set.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/collections/set.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,WAAW,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAC;;gBAU5B,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IA4BvC,IAAI,IAAI,IAAI,MAAM,CAGjB;IAMD,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IA0BrB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAmBlB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAuBxB,KAAK,IAAI,IAAI;IAmBb,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC;IAKtB,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC;IAKxB,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAK9B,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAKxF,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC;CAGpC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Signal is a derived value (computed) */
|
|
2
|
+
export declare const DERIVED: number;
|
|
3
|
+
/** Signal is an effect */
|
|
4
|
+
export declare const EFFECT: number;
|
|
5
|
+
/** Effect is a render effect ($effect.pre) - runs before DOM updates */
|
|
6
|
+
export declare const RENDER_EFFECT: number;
|
|
7
|
+
/** Effect is a root effect (created via effect.root()) */
|
|
8
|
+
export declare const ROOT_EFFECT: number;
|
|
9
|
+
/** Effect is a branch effect (if/each blocks) */
|
|
10
|
+
export declare const BRANCH_EFFECT: number;
|
|
11
|
+
/** Effect is a user effect ($effect) */
|
|
12
|
+
export declare const USER_EFFECT: number;
|
|
13
|
+
/** Effect is a block effect */
|
|
14
|
+
export declare const BLOCK_EFFECT: number;
|
|
15
|
+
/** Signal/reaction is clean (up-to-date) */
|
|
16
|
+
export declare const CLEAN: number;
|
|
17
|
+
/** Signal/reaction is dirty (definitely needs update) */
|
|
18
|
+
export declare const DIRTY: number;
|
|
19
|
+
/** Signal/reaction might be dirty (needs to check dependencies) */
|
|
20
|
+
export declare const MAYBE_DIRTY: number;
|
|
21
|
+
/** Reaction is currently being updated */
|
|
22
|
+
export declare const REACTION_IS_UPDATING: number;
|
|
23
|
+
/** Effect has been destroyed */
|
|
24
|
+
export declare const DESTROYED: number;
|
|
25
|
+
/** Effect is inert (paused) */
|
|
26
|
+
export declare const INERT: number;
|
|
27
|
+
/** Effect has run at least once */
|
|
28
|
+
export declare const EFFECT_RAN: number;
|
|
29
|
+
/** Effect is preserved (not destroyed with parent) */
|
|
30
|
+
export declare const EFFECT_PRESERVED: number;
|
|
31
|
+
/** Derived has no owner (created outside effect) */
|
|
32
|
+
export declare const UNOWNED: number;
|
|
33
|
+
/** Derived is disconnected (no reactions, can be GC'd) */
|
|
34
|
+
export declare const DISCONNECTED: number;
|
|
35
|
+
/** Effect is an inspect effect (for $inspect) */
|
|
36
|
+
export declare const INSPECT_EFFECT: number;
|
|
37
|
+
/** Sentinel for uninitialized values (deleted properties, new deriveds) */
|
|
38
|
+
export declare const UNINITIALIZED: unique symbol;
|
|
39
|
+
/** Sentinel for stale reactions (aborted async work) */
|
|
40
|
+
export declare const STALE_REACTION: unique symbol;
|
|
41
|
+
/** Symbol to identify reactive proxies */
|
|
42
|
+
export declare const STATE_SYMBOL: unique symbol;
|
|
43
|
+
/** Symbol to mark reactive proxies */
|
|
44
|
+
export declare const REACTIVE_MARKER: unique symbol;
|
|
45
|
+
/** Mask to clear all status bits (CLEAN, DIRTY, MAYBE_DIRTY) */
|
|
46
|
+
export declare const STATUS_MASK: number;
|
|
47
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AASA,2CAA2C;AAC3C,eAAO,MAAM,OAAO,QAAS,CAAA;AAE7B,0BAA0B;AAC1B,eAAO,MAAM,MAAM,QAAS,CAAA;AAE5B,wEAAwE;AACxE,eAAO,MAAM,aAAa,QAAS,CAAA;AAEnC,0DAA0D;AAC1D,eAAO,MAAM,WAAW,QAAS,CAAA;AAEjC,iDAAiD;AACjD,eAAO,MAAM,aAAa,QAAS,CAAA;AAEnC,wCAAwC;AACxC,eAAO,MAAM,WAAW,QAAS,CAAA;AAEjC,+BAA+B;AAC/B,eAAO,MAAM,YAAY,QAAS,CAAA;AAMlC,4CAA4C;AAC5C,eAAO,MAAM,KAAK,QAAU,CAAA;AAE5B,yDAAyD;AACzD,eAAO,MAAM,KAAK,QAAU,CAAA;AAE5B,mEAAmE;AACnE,eAAO,MAAM,WAAW,QAAU,CAAA;AAElC,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,QAAU,CAAA;AAE3C,gCAAgC;AAChC,eAAO,MAAM,SAAS,QAAU,CAAA;AAEhC,+BAA+B;AAC/B,eAAO,MAAM,KAAK,QAAU,CAAA;AAE5B,mCAAmC;AACnC,eAAO,MAAM,UAAU,QAAU,CAAA;AAEjC,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,QAAU,CAAA;AAMvC,oDAAoD;AACpD,eAAO,MAAM,OAAO,QAAS,CAAA;AAE7B,0DAA0D;AAC1D,eAAO,MAAM,YAAY,QAAS,CAAA;AAMlC,iDAAiD;AACjD,eAAO,MAAM,cAAc,QAAU,CAAA;AAMrC,2EAA2E;AAC3E,eAAO,MAAM,aAAa,EAAE,OAAO,MAAkD,CAAA;AAErF,wDAAwD;AACxD,eAAO,MAAM,cAAc,EAAE,OAAO,MAAmD,CAAA;AAEvF,0CAA0C;AAC1C,eAAO,MAAM,YAAY,EAAE,OAAO,MAA0C,CAAA;AAE5E,sCAAsC;AACtC,eAAO,MAAM,eAAe,EAAE,OAAO,MAA6C,CAAA;AAMlF,gEAAgE;AAChE,eAAO,MAAM,WAAW,QAAiC,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Reaction, Effect, Source } from './types.js';
|
|
2
|
+
/** Currently executing reaction (effect or derived) */
|
|
3
|
+
export declare let activeReaction: Reaction | null;
|
|
4
|
+
/** Currently executing effect */
|
|
5
|
+
export declare let activeEffect: Effect | null;
|
|
6
|
+
/** Whether we're currently untracking (reading without creating dependencies) */
|
|
7
|
+
export declare let untracking: boolean;
|
|
8
|
+
/** Global write version - incremented on every signal write */
|
|
9
|
+
export declare let writeVersion: number;
|
|
10
|
+
/** Global read version - incremented on every reaction run */
|
|
11
|
+
export declare let readVersion: number;
|
|
12
|
+
/** New dependencies collected during current reaction execution */
|
|
13
|
+
export declare let newDeps: Source[] | null;
|
|
14
|
+
/** Number of existing dependencies that matched (optimization) */
|
|
15
|
+
export declare let skippedDeps: number;
|
|
16
|
+
/** Signals written to during current reaction (for self-invalidation) */
|
|
17
|
+
export declare let untrackedWrites: Source[] | null;
|
|
18
|
+
/** Current batch depth (for nested batches) */
|
|
19
|
+
export declare let batchDepth: number;
|
|
20
|
+
/** Pending reactions to run after batch completes */
|
|
21
|
+
export declare let pendingReactions: Set<Reaction>;
|
|
22
|
+
/** Queued root effects to process */
|
|
23
|
+
export declare let queuedRootEffects: Effect[];
|
|
24
|
+
/** Whether we're currently flushing synchronously */
|
|
25
|
+
export declare let isFlushingSync: boolean;
|
|
26
|
+
export declare function setActiveReaction(reaction: Reaction | null): Reaction | null;
|
|
27
|
+
export declare function setActiveEffect(effect: Effect | null): Effect | null;
|
|
28
|
+
export declare function setUntracking(value: boolean): boolean;
|
|
29
|
+
export declare function incrementWriteVersion(): number;
|
|
30
|
+
export declare function incrementReadVersion(): number;
|
|
31
|
+
export declare function setNewDeps(deps: Source[] | null): Source[] | null;
|
|
32
|
+
export declare function setSkippedDeps(count: number): number;
|
|
33
|
+
export declare function setUntrackedWrites(writes: Source[] | null): Source[] | null;
|
|
34
|
+
export declare function addUntrackedWrite(signal: Source): void;
|
|
35
|
+
export declare function incrementBatchDepth(): number;
|
|
36
|
+
export declare function decrementBatchDepth(): number;
|
|
37
|
+
export declare function setIsFlushingSync(value: boolean): boolean;
|
|
38
|
+
export declare function clearPendingReactions(): void;
|
|
39
|
+
export declare function addPendingReaction(reaction: Reaction): void;
|
|
40
|
+
export declare function clearQueuedRootEffects(): Effect[];
|
|
41
|
+
export declare function addQueuedRootEffect(effect: Effect): void;
|
|
42
|
+
export declare function getReadVersion(): number;
|
|
43
|
+
export declare function getWriteVersion(): number;
|
|
44
|
+
export declare function getBatchDepth(): number;
|
|
45
|
+
//# sourceMappingURL=globals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../../src/core/globals.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAM1D,uDAAuD;AACvD,eAAO,IAAI,cAAc,EAAE,QAAQ,GAAG,IAAW,CAAA;AAEjD,iCAAiC;AACjC,eAAO,IAAI,YAAY,EAAE,MAAM,GAAG,IAAW,CAAA;AAE7C,iFAAiF;AACjF,eAAO,IAAI,UAAU,SAAQ,CAAA;AAM7B,+DAA+D;AAC/D,eAAO,IAAI,YAAY,QAAI,CAAA;AAE3B,8DAA8D;AAC9D,eAAO,IAAI,WAAW,QAAI,CAAA;AAM1B,mEAAmE;AACnE,eAAO,IAAI,OAAO,EAAE,MAAM,EAAE,GAAG,IAAW,CAAA;AAE1C,kEAAkE;AAClE,eAAO,IAAI,WAAW,QAAI,CAAA;AAE1B,yEAAyE;AACzE,eAAO,IAAI,eAAe,EAAE,MAAM,EAAE,GAAG,IAAW,CAAA;AAMlD,+CAA+C;AAC/C,eAAO,IAAI,UAAU,QAAI,CAAA;AAEzB,qDAAqD;AACrD,eAAO,IAAI,gBAAgB,EAAE,GAAG,CAAC,QAAQ,CAAa,CAAA;AAEtD,qCAAqC;AACrC,eAAO,IAAI,iBAAiB,EAAE,MAAM,EAAO,CAAA;AAE3C,qDAAqD;AACrD,eAAO,IAAI,cAAc,SAAQ,CAAA;AAMjC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,CAI5E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAIpE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIrD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,MAAM,EAAE,GAAG,IAAI,CAIjE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,MAAM,EAAE,GAAG,IAAI,CAI3E;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAMtD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIzD;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE3D;AAED,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAIjD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAExD;AAMD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { UNINITIALIZED } from './constants.js';
|
|
2
|
+
/** Equality function for comparing signal values */
|
|
3
|
+
export type Equals<T = any> = (oldValue: any, newValue: any) => boolean;
|
|
4
|
+
/** Base interface for all reactive values */
|
|
5
|
+
export interface Signal {
|
|
6
|
+
/** Flags bitmask for state tracking */
|
|
7
|
+
f: number;
|
|
8
|
+
/** Write version - incremented when signal is written */
|
|
9
|
+
wv: number;
|
|
10
|
+
}
|
|
11
|
+
/** A reactive source (basic signal) */
|
|
12
|
+
export interface Source<T = unknown> extends Signal {
|
|
13
|
+
/** Current value */
|
|
14
|
+
v: T;
|
|
15
|
+
/** Equality function for comparing values */
|
|
16
|
+
equals: Equals<T>;
|
|
17
|
+
/** Reactions (effects/deriveds) that depend on this source */
|
|
18
|
+
reactions: Reaction[] | null;
|
|
19
|
+
/** Read version - for dependency deduplication */
|
|
20
|
+
rv: number;
|
|
21
|
+
}
|
|
22
|
+
/** Base interface for reactions (effects and deriveds) */
|
|
23
|
+
export interface Reaction extends Signal {
|
|
24
|
+
/** The function to execute */
|
|
25
|
+
fn: Function | null;
|
|
26
|
+
/** Dependencies (sources/deriveds this reaction reads) */
|
|
27
|
+
deps: Source[] | null;
|
|
28
|
+
}
|
|
29
|
+
/** A derived (computed) value */
|
|
30
|
+
export interface Derived<T = unknown> extends Source<T>, Reaction {
|
|
31
|
+
/** Computation function */
|
|
32
|
+
fn: () => T;
|
|
33
|
+
/** Child effects created inside this derived */
|
|
34
|
+
effects: Effect[] | null;
|
|
35
|
+
/** Parent effect or derived */
|
|
36
|
+
parent: Effect | Derived | null;
|
|
37
|
+
}
|
|
38
|
+
/** Cleanup function returned by effects */
|
|
39
|
+
export type CleanupFn = () => void;
|
|
40
|
+
/** Effect function signature */
|
|
41
|
+
export type EffectFn = () => void | CleanupFn;
|
|
42
|
+
/** An effect (side effect) */
|
|
43
|
+
export interface Effect extends Reaction {
|
|
44
|
+
/** Effect function */
|
|
45
|
+
fn: EffectFn | null;
|
|
46
|
+
/** Teardown/cleanup function from last run */
|
|
47
|
+
teardown: CleanupFn | null;
|
|
48
|
+
/** Parent effect in the effect tree */
|
|
49
|
+
parent: Effect | null;
|
|
50
|
+
/** First child effect */
|
|
51
|
+
first: Effect | null;
|
|
52
|
+
/** Last child effect */
|
|
53
|
+
last: Effect | null;
|
|
54
|
+
/** Previous sibling effect */
|
|
55
|
+
prev: Effect | null;
|
|
56
|
+
/** Next sibling effect */
|
|
57
|
+
next: Effect | null;
|
|
58
|
+
}
|
|
59
|
+
/** A value that can be read (source or derived) */
|
|
60
|
+
export type Value<T = unknown> = Source<T> | Derived<T>;
|
|
61
|
+
/** Read-only signal interface (public API) */
|
|
62
|
+
export interface ReadableSignal<T> {
|
|
63
|
+
readonly value: T;
|
|
64
|
+
}
|
|
65
|
+
/** Writable signal interface (public API) */
|
|
66
|
+
export interface WritableSignal<T> extends ReadableSignal<T> {
|
|
67
|
+
value: T;
|
|
68
|
+
}
|
|
69
|
+
/** Derived signal interface (public API) */
|
|
70
|
+
export interface DerivedSignal<T> extends ReadableSignal<T> {
|
|
71
|
+
}
|
|
72
|
+
/** Dispose function for effects */
|
|
73
|
+
export type DisposeFn = () => void;
|
|
74
|
+
/** Type for uninitialized values */
|
|
75
|
+
export type Uninitialized = typeof UNINITIALIZED;
|
|
76
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAMnD,oDAAoD;AAGpD,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAA;AAMvE,6CAA6C;AAC7C,MAAM,WAAW,MAAM;IACrB,uCAAuC;IACvC,CAAC,EAAE,MAAM,CAAA;IAET,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAA;CACX;AAMD,uCAAuC;AACvC,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,MAAM;IACjD,oBAAoB;IACpB,CAAC,EAAE,CAAC,CAAA;IAEJ,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAEjB,8DAA8D;IAC9D,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAE5B,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAA;CACX;AAMD,0DAA0D;AAC1D,MAAM,WAAW,QAAS,SAAQ,MAAM;IACtC,8BAA8B;IAC9B,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IAEnB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CACtB;AAMD,iCAAiC;AACjC,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ;IAC/D,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC,CAAA;IAEX,gDAAgD;IAChD,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAExB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;CAChC;AAMD,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GAAG,MAAM,IAAI,CAAA;AAElC,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,GAAG,SAAS,CAAA;AAE7C,8BAA8B;AAC9B,MAAM,WAAW,MAAO,SAAQ,QAAQ;IACtC,sBAAsB;IACtB,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IAEnB,8CAA8C;IAC9C,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAA;IAE1B,uCAAuC;IACvC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAErB,yBAAyB;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAEpB,wBAAwB;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAEnB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAEnB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAMD,mDAAmD;AACnD,MAAM,MAAM,KAAK,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAMvD,8CAA8C;AAC9C,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAClB;AAED,6CAA6C;AAC7C,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAC1D,KAAK,EAAE,CAAC,CAAA;CACT;AAED,4CAA4C;AAC5C,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;CAAG;AAE9D,mCAAmC;AACnC,MAAM,MAAM,SAAS,GAAG,MAAM,IAAI,CAAA;AAMlC,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a deeply reactive proxy for an object or array
|
|
3
|
+
*
|
|
4
|
+
* Key features:
|
|
5
|
+
* 1. Per-property signals (lazy creation)
|
|
6
|
+
* 2. Version signal for structural changes (add/delete)
|
|
7
|
+
* 3. Recursive proxying of nested objects
|
|
8
|
+
* 4. Fine-grained reactivity at every level
|
|
9
|
+
*/
|
|
10
|
+
export declare function proxy<T extends object>(value: T): T;
|
|
11
|
+
/**
|
|
12
|
+
* Get the raw (non-reactive) value from a proxy
|
|
13
|
+
*/
|
|
14
|
+
export declare function toRaw<T>(value: T): T;
|
|
15
|
+
/**
|
|
16
|
+
* Check if a value is a reactive proxy
|
|
17
|
+
*/
|
|
18
|
+
export declare function isReactive(value: unknown): boolean;
|
|
19
|
+
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/deep/proxy.ts"],"names":[],"mappings":"AAoDA;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CA2PnD;AAMD;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAKpC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAElD"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,278 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export
|
|
17
|
-
readonly value: T;
|
|
18
|
-
}
|
|
19
|
-
/** Options for creating a signal */
|
|
20
|
-
export interface SignalOptions<T> {
|
|
21
|
-
equals?: EqualityFn<T>;
|
|
22
|
-
}
|
|
23
|
-
/** Default equality check using Object.is */
|
|
24
|
-
export declare const defaultEquals: <T>(a: T, b: T) => boolean;
|
|
25
|
-
/** Shallow equality for objects/arrays */
|
|
26
|
-
export declare const shallowEquals: <T>(a: T, b: T) => boolean;
|
|
27
|
-
/**
|
|
28
|
-
* Create a reactive signal
|
|
29
|
-
*
|
|
30
|
-
* For objects and arrays, the signal is deeply reactive - mutations at any
|
|
31
|
-
* depth will trigger effects.
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```ts
|
|
35
|
-
* const count = signal(0)
|
|
36
|
-
* console.log(count.value) // 0
|
|
37
|
-
* count.value = 1
|
|
38
|
-
* console.log(count.value) // 1
|
|
39
|
-
*
|
|
40
|
-
* // Deep reactivity for objects/arrays
|
|
41
|
-
* const user = signal({ name: 'John', address: { city: 'NYC' } })
|
|
42
|
-
* user.value.address.city = 'LA' // Triggers effects!
|
|
43
|
-
*
|
|
44
|
-
* const items = signal([[1, 2], [3, 4]])
|
|
45
|
-
* items.value[0][1] = 99 // Triggers effects!
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
export declare function signal<T>(initial: T, options?: SignalOptions<T>): WritableSignal<T>;
|
|
49
|
-
/**
|
|
50
|
-
* Create a reactive effect that re-runs when dependencies change
|
|
51
|
-
*
|
|
52
|
-
* @returns Dispose function to stop the effect
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```ts
|
|
56
|
-
* const count = signal(0)
|
|
57
|
-
* const dispose = effect(() => {
|
|
58
|
-
* console.log('Count:', count.value)
|
|
59
|
-
* })
|
|
60
|
-
* // Logs: "Count: 0"
|
|
61
|
-
*
|
|
62
|
-
* count.value = 1
|
|
63
|
-
* // Logs: "Count: 1"
|
|
64
|
-
*
|
|
65
|
-
* dispose() // Stop the effect
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
export declare function effect(fn: EffectFn): CleanupFn;
|
|
69
|
-
/**
|
|
70
|
-
* Create a derived/computed value that automatically updates
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* ```ts
|
|
74
|
-
* const count = signal(0)
|
|
75
|
-
* const doubled = derived(() => count.value * 2)
|
|
76
|
-
* console.log(doubled.value) // 0
|
|
77
|
-
*
|
|
78
|
-
* count.value = 5
|
|
79
|
-
* console.log(doubled.value) // 10
|
|
80
|
-
* ```
|
|
81
|
-
*/
|
|
82
|
-
export declare function derived<T>(fn: () => T, options?: SignalOptions<T>): Derived<T>;
|
|
83
|
-
export declare namespace derived {
|
|
84
|
-
var by: typeof derived;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Batch multiple updates into a single reaction cycle
|
|
88
|
-
*
|
|
89
|
-
* @example
|
|
90
|
-
* ```ts
|
|
91
|
-
* const a = signal(1)
|
|
92
|
-
* const b = signal(2)
|
|
93
|
-
*
|
|
94
|
-
* effect(() => console.log(a.value + b.value))
|
|
95
|
-
* // Logs: 3
|
|
96
|
-
*
|
|
97
|
-
* batch(() => {
|
|
98
|
-
* a.value = 10
|
|
99
|
-
* b.value = 20
|
|
100
|
-
* })
|
|
101
|
-
* // Logs: 30 (only once, not twice)
|
|
102
|
-
* ```
|
|
103
|
-
*/
|
|
104
|
-
export declare function batch<T>(fn: () => T): T;
|
|
105
|
-
/**
|
|
106
|
-
* Read signals without creating dependencies
|
|
107
|
-
*
|
|
108
|
-
* @example
|
|
109
|
-
* ```ts
|
|
110
|
-
* const a = signal(1)
|
|
111
|
-
* const b = signal(2)
|
|
112
|
-
*
|
|
113
|
-
* effect(() => {
|
|
114
|
-
* console.log(a.value) // Creates dependency
|
|
115
|
-
* untrack(() => {
|
|
116
|
-
* console.log(b.value) // Does NOT create dependency
|
|
117
|
-
* })
|
|
118
|
-
* })
|
|
119
|
-
* ```
|
|
120
|
-
*/
|
|
121
|
-
export declare function untrack<T>(fn: () => T): T;
|
|
122
|
-
/**
|
|
123
|
-
* Create a deeply reactive state object
|
|
124
|
-
* All nested properties are automatically reactive
|
|
125
|
-
*
|
|
126
|
-
* @example
|
|
127
|
-
* ```ts
|
|
128
|
-
* const user = state({
|
|
129
|
-
* name: 'John',
|
|
130
|
-
* address: {
|
|
131
|
-
* city: 'NYC'
|
|
132
|
-
* }
|
|
133
|
-
* })
|
|
134
|
-
*
|
|
135
|
-
* effect(() => {
|
|
136
|
-
* console.log(user.address.city)
|
|
137
|
-
* })
|
|
138
|
-
* // Logs: "NYC"
|
|
139
|
-
*
|
|
140
|
-
* user.address.city = 'LA'
|
|
141
|
-
* // Logs: "LA"
|
|
142
|
-
* ```
|
|
143
|
-
*/
|
|
144
|
-
export declare function state<T extends object>(initial: T): T;
|
|
145
|
-
/**
|
|
146
|
-
* Get the raw (non-reactive) version of a reactive object
|
|
147
|
-
*/
|
|
148
|
-
export declare function toRaw<T>(proxy: T): T;
|
|
149
|
-
/**
|
|
150
|
-
* Check if a value is a reactive proxy
|
|
151
|
-
*/
|
|
152
|
-
export declare function isReactive(value: unknown): boolean;
|
|
153
|
-
/**
|
|
154
|
-
* A reactive Map that triggers updates on modifications
|
|
155
|
-
*
|
|
156
|
-
* @example
|
|
157
|
-
* ```ts
|
|
158
|
-
* const map = new ReactiveMap<string, number>()
|
|
159
|
-
*
|
|
160
|
-
* effect(() => {
|
|
161
|
-
* console.log('Size:', map.size)
|
|
162
|
-
* console.log('Has foo:', map.has('foo'))
|
|
163
|
-
* })
|
|
164
|
-
*
|
|
165
|
-
* map.set('foo', 42) // Triggers effect
|
|
166
|
-
* ```
|
|
167
|
-
*/
|
|
168
|
-
export declare class ReactiveMap<K, V> extends Map<K, V> {
|
|
169
|
-
#private;
|
|
170
|
-
constructor(entries?: Iterable<readonly [K, V]> | null);
|
|
171
|
-
get size(): number;
|
|
172
|
-
has(key: K): boolean;
|
|
173
|
-
get(key: K): V | undefined;
|
|
174
|
-
set(key: K, value: V): this;
|
|
175
|
-
delete(key: K): boolean;
|
|
176
|
-
clear(): void;
|
|
177
|
-
forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;
|
|
178
|
-
keys(): MapIterator<K>;
|
|
179
|
-
values(): MapIterator<V>;
|
|
180
|
-
entries(): MapIterator<[K, V]>;
|
|
181
|
-
[Symbol.iterator](): MapIterator<[K, V]>;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* A reactive Set that triggers updates on modifications
|
|
185
|
-
*
|
|
186
|
-
* @example
|
|
187
|
-
* ```ts
|
|
188
|
-
* const set = new ReactiveSet<string>()
|
|
189
|
-
*
|
|
190
|
-
* effect(() => {
|
|
191
|
-
* console.log('Size:', set.size)
|
|
192
|
-
* console.log('Has foo:', set.has('foo'))
|
|
193
|
-
* })
|
|
194
|
-
*
|
|
195
|
-
* set.add('foo') // Triggers effect
|
|
196
|
-
* ```
|
|
197
|
-
*/
|
|
198
|
-
export declare class ReactiveSet<T> extends Set<T> {
|
|
199
|
-
#private;
|
|
200
|
-
constructor(values?: Iterable<T> | null);
|
|
201
|
-
get size(): number;
|
|
202
|
-
has(value: T): boolean;
|
|
203
|
-
add(value: T): this;
|
|
204
|
-
delete(value: T): boolean;
|
|
205
|
-
clear(): void;
|
|
206
|
-
forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void;
|
|
207
|
-
keys(): SetIterator<T>;
|
|
208
|
-
values(): SetIterator<T>;
|
|
209
|
-
entries(): SetIterator<[T, T]>;
|
|
210
|
-
[Symbol.iterator](): SetIterator<T>;
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Create a reactive array with fine-grained reactivity
|
|
214
|
-
*
|
|
215
|
-
* @example
|
|
216
|
-
* ```ts
|
|
217
|
-
* const items = reactiveArray([1, 2, 3])
|
|
218
|
-
*
|
|
219
|
-
* effect(() => {
|
|
220
|
-
* console.log('Length:', items.length)
|
|
221
|
-
* console.log('First:', items[0])
|
|
222
|
-
* })
|
|
223
|
-
*
|
|
224
|
-
* items.push(4) // Triggers effect
|
|
225
|
-
* items[0] = 10 // Triggers effect
|
|
226
|
-
* ```
|
|
227
|
-
*/
|
|
228
|
-
export declare function reactiveArray<T>(initial?: T[]): T[];
|
|
229
|
-
/**
|
|
230
|
-
* Create an effect scope for grouping and disposing multiple effects
|
|
231
|
-
*
|
|
232
|
-
* @example
|
|
233
|
-
* ```ts
|
|
234
|
-
* const scope = effectScope()
|
|
235
|
-
*
|
|
236
|
-
* scope.run(() => {
|
|
237
|
-
* effect(() => console.log('Effect 1'))
|
|
238
|
-
* effect(() => console.log('Effect 2'))
|
|
239
|
-
* })
|
|
240
|
-
*
|
|
241
|
-
* scope.stop() // Disposes all effects in the scope
|
|
242
|
-
* ```
|
|
243
|
-
*/
|
|
244
|
-
export declare function effectScope(): {
|
|
245
|
-
run<T>(fn: () => T): T | undefined;
|
|
246
|
-
stop(): void;
|
|
247
|
-
readonly active: boolean;
|
|
248
|
-
};
|
|
249
|
-
/**
|
|
250
|
-
* Watch a signal or derived and call callback when it changes
|
|
251
|
-
* Like effect but only runs the callback, not for initial subscription
|
|
252
|
-
*
|
|
253
|
-
* @example
|
|
254
|
-
* ```ts
|
|
255
|
-
* const count = signal(0)
|
|
256
|
-
*
|
|
257
|
-
* watch(
|
|
258
|
-
* () => count.value,
|
|
259
|
-
* (newValue, oldValue) => {
|
|
260
|
-
* console.log(`Changed from ${oldValue} to ${newValue}`)
|
|
261
|
-
* }
|
|
262
|
-
* )
|
|
263
|
-
*
|
|
264
|
-
* count.value = 1 // Logs: "Changed from 0 to 1"
|
|
265
|
-
* ```
|
|
266
|
-
*/
|
|
267
|
-
export declare function watch<T>(source: () => T, callback: (newValue: T, oldValue: T | undefined) => void | CleanupFn, options?: {
|
|
268
|
-
immediate?: boolean;
|
|
269
|
-
}): CleanupFn;
|
|
270
|
-
/**
|
|
271
|
-
* Create a readonly signal from a writable signal
|
|
272
|
-
*/
|
|
273
|
-
export declare function readonly<T>(sig: WritableSignal<T>): Signal<T>;
|
|
274
|
-
/**
|
|
275
|
-
* Compute a value once without reactivity
|
|
276
|
-
*/
|
|
277
|
-
export declare function peek<T>(fn: () => T): T;
|
|
1
|
+
export { signal, source, mutableSource, state, stateRaw } from './primitives/signal.js';
|
|
2
|
+
export { derived, createDerived, disconnectDerived } from './primitives/derived.js';
|
|
3
|
+
export { effect, createEffect, updateEffect, destroyEffect } from './primitives/effect.js';
|
|
4
|
+
export { bind, bindReadonly, isBinding, unwrap } from './primitives/bind.js';
|
|
5
|
+
export { proxy, toRaw, isReactive } from './deep/proxy.js';
|
|
6
|
+
export { batch, untrack, peek } from './reactivity/batching.js';
|
|
7
|
+
export { flushSync, tick } from './reactivity/scheduling.js';
|
|
8
|
+
export { equals, safeEquals, safeNotEqual, shallowEquals, createEquals, neverEquals, alwaysEquals, } from './reactivity/equality.js';
|
|
9
|
+
export { ReactiveMap } from './collections/map.js';
|
|
10
|
+
export { ReactiveSet } from './collections/set.js';
|
|
11
|
+
export { ReactiveDate } from './collections/date.js';
|
|
12
|
+
export { get, set, isDirty, setSignalStatus, markReactions, updateReaction, removeReactions, } from './reactivity/tracking.js';
|
|
13
|
+
export { DERIVED, EFFECT, RENDER_EFFECT, ROOT_EFFECT, BRANCH_EFFECT, USER_EFFECT, BLOCK_EFFECT, CLEAN, DIRTY, MAYBE_DIRTY, REACTION_IS_UPDATING, DESTROYED, INERT, EFFECT_RAN, EFFECT_PRESERVED, UNOWNED, DISCONNECTED, UNINITIALIZED, STALE_REACTION, STATE_SYMBOL, REACTIVE_MARKER, } from './core/constants.js';
|
|
14
|
+
export { activeReaction, activeEffect, untracking, writeVersion, readVersion, batchDepth, setActiveReaction, setActiveEffect, setUntracking, incrementWriteVersion, incrementReadVersion, incrementBatchDepth, decrementBatchDepth, getReadVersion, getWriteVersion, getBatchDepth, } from './core/globals.js';
|
|
15
|
+
export type { Signal, Source, Reaction, Derived, Effect, Value, ReadableSignal, WritableSignal, DerivedSignal, DisposeFn, CleanupFn, EffectFn, Equals, Uninitialized, } from './core/types.js';
|
|
16
|
+
export type { Binding, ReadonlyBinding } from './primitives/bind.js';
|
|
278
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACvF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC1F,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAM5E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAM1D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAM5D,OAAO,EACL,MAAM,EACN,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,0BAA0B,CAAA;AAMjC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAMpD,OAAO,EACL,GAAG,EACH,GAAG,EACH,OAAO,EACP,eAAe,EACf,aAAa,EACb,cAAc,EACd,eAAe,GAChB,MAAM,0BAA0B,CAAA;AAMjC,OAAO,EAEL,OAAO,EACP,MAAM,EACN,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EAGZ,KAAK,EACL,KAAK,EACL,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,KAAK,EACL,UAAU,EACV,gBAAgB,EAGhB,OAAO,EACP,YAAY,EAGZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,MAAM,qBAAqB,CAAA;AAM5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EAGV,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EAGnB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAA;AAM1B,YAAY,EAEV,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EAGL,cAAc,EACd,cAAc,EACd,aAAa,EACb,SAAS,EACT,SAAS,EACT,QAAQ,EAGR,MAAM,EACN,aAAa,GACd,MAAM,iBAAiB,CAAA;AAExB,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
|