mutts 1.0.9 → 1.0.10
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 +58 -33
- package/dist/browser.cjs +1371 -1206
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.ts +2 -1392
- package/dist/browser.dev.cjs +110 -0
- package/dist/browser.dev.cjs.map +1 -0
- package/dist/browser.dev.d.ts +2 -0
- package/dist/browser.dev.esm.js +5 -0
- package/dist/browser.dev.esm.js.map +1 -0
- package/dist/browser.esm.js +6 -87
- package/dist/browser.esm.js.map +1 -1
- package/dist/chunks/{async-browser-lvzLOCgk.cjs → async-browser-BU_IfxYD.cjs} +4 -85
- package/dist/chunks/async-browser-BU_IfxYD.cjs.map +1 -0
- package/dist/chunks/{async-node-C3DeIb0y.cjs → async-node-3PrbVAbB.cjs} +3 -1
- package/dist/chunks/async-node-3PrbVAbB.cjs.map +1 -0
- package/dist/chunks/{index-2vea86wD.esm.js → index-CaaQQlPJ.esm.js} +1116 -953
- package/dist/chunks/index-CaaQQlPJ.esm.js.map +1 -0
- package/dist/chunks/node-nKJBk8iJ.esm.js +96 -0
- package/dist/chunks/node-nKJBk8iJ.esm.js.map +1 -0
- package/dist/chunks/{index-VTO-b2vR.cjs → proxy-Dtg-bJ3T.cjs} +2285 -2983
- package/dist/chunks/proxy-Dtg-bJ3T.cjs.map +1 -0
- package/dist/chunks/{index-CtA2AWl3.esm.js → proxy-r7lARftl.esm.js} +2273 -2948
- package/dist/chunks/proxy-r7lARftl.esm.js.map +1 -0
- package/dist/debug.cjs +973 -28
- package/dist/debug.cjs.map +1 -1
- package/dist/debug.d.ts +36 -37
- package/dist/debug.esm.js +949 -1
- package/dist/debug.esm.js.map +1 -1
- package/dist/devtools/manifest.json +1 -1
- package/dist/devtools/panel.html +1 -1
- package/dist/devtools/panel.js +107 -94
- package/dist/devtools/panel.js.map +1 -1
- package/dist/index.d.ts +1447 -1
- package/dist/mutts.umd.js +7167 -1
- package/dist/mutts.umd.js.map +1 -1
- package/dist/mutts.umd.min.js +1 -1
- package/dist/mutts.umd.min.js.map +1 -1
- package/dist/node.cjs +62 -60
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.ts +2 -2
- package/dist/node.dev.cjs +110 -0
- package/dist/node.dev.cjs.map +1 -0
- package/dist/node.dev.d.ts +2 -0
- package/dist/node.dev.esm.js +6 -0
- package/dist/node.dev.esm.js.map +1 -0
- package/dist/node.esm.js +4 -97
- package/dist/node.esm.js.map +1 -1
- package/dist/{types-DaHFfhlN.d.ts → types-W5vD6m2n.d.ts} +99 -44
- package/docs/ai/api-reference.md +11 -18
- package/docs/ai/manual.md +308 -230
- package/docs/reactive/advanced.md +312 -2
- package/docs/reactive/attend.md +1 -2
- package/docs/reactive/collections.md +21 -39
- package/docs/reactive/core.md +7 -37
- package/docs/reactive/debugging.md +117 -10
- package/docs/reactive/error-handling.md +10 -10
- package/docs/reactive/resource.md +125 -0
- package/docs/reactive/scan.md +32 -1
- package/docs/reactive.md +3 -2
- package/docs/utils.md +70 -0
- package/package.json +59 -30
- package/dist/chunks/async-browser-lvzLOCgk.cjs.map +0 -1
- package/dist/chunks/async-node-C3DeIb0y.cjs.map +0 -1
- package/dist/chunks/index-2vea86wD.esm.js.map +0 -1
- package/dist/chunks/index-CtA2AWl3.esm.js.map +0 -1
- package/dist/chunks/index-VTO-b2vR.cjs.map +0 -1
- package/dist/debug/debug.d.ts +0 -122
- package/dist/debug/debug.d.ts.map +0 -1
- package/dist/debug/index.d.ts +0 -4
- package/dist/debug/index.d.ts.map +0 -1
- package/dist/debug/lineage-panel.d.ts +0 -5
- package/dist/debug/lineage-panel.d.ts.map +0 -1
- package/dist/debug/lineage.d.ts +0 -79
- package/dist/debug/lineage.d.ts.map +0 -1
- package/dist/src/async/browser.d.ts +0 -2
- package/dist/src/async/browser.d.ts.map +0 -1
- package/dist/src/async/index.d.ts +0 -19
- package/dist/src/async/index.d.ts.map +0 -1
- package/dist/src/async/node.d.ts +0 -2
- package/dist/src/async/node.d.ts.map +0 -1
- package/dist/src/decorator.d.ts +0 -106
- package/dist/src/decorator.d.ts.map +0 -1
- package/dist/src/destroyable.d.ts +0 -87
- package/dist/src/destroyable.d.ts.map +0 -1
- package/dist/src/entry-browser.d.ts +0 -3
- package/dist/src/entry-browser.d.ts.map +0 -1
- package/dist/src/entry-node.d.ts +0 -3
- package/dist/src/entry-node.d.ts.map +0 -1
- package/dist/src/eventful.d.ts +0 -20
- package/dist/src/eventful.d.ts.map +0 -1
- package/dist/src/flavored.d.ts +0 -33
- package/dist/src/flavored.d.ts.map +0 -1
- package/dist/src/index.d.ts +0 -14
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/indexable.d.ts +0 -243
- package/dist/src/indexable.d.ts.map +0 -1
- package/dist/src/introspection.d.ts +0 -27
- package/dist/src/introspection.d.ts.map +0 -1
- package/dist/src/iterableWeak.d.ts +0 -53
- package/dist/src/iterableWeak.d.ts.map +0 -1
- package/dist/src/mixins.d.ts +0 -25
- package/dist/src/mixins.d.ts.map +0 -1
- package/dist/src/promiseChain.d.ts +0 -20
- package/dist/src/promiseChain.d.ts.map +0 -1
- package/dist/src/reactive/array.d.ts +0 -48
- package/dist/src/reactive/array.d.ts.map +0 -1
- package/dist/src/reactive/buffer.d.ts +0 -120
- package/dist/src/reactive/buffer.d.ts.map +0 -1
- package/dist/src/reactive/change.d.ts +0 -29
- package/dist/src/reactive/change.d.ts.map +0 -1
- package/dist/src/reactive/deep-touch.d.ts +0 -28
- package/dist/src/reactive/deep-touch.d.ts.map +0 -1
- package/dist/src/reactive/deep-watch-state.d.ts +0 -25
- package/dist/src/reactive/deep-watch-state.d.ts.map +0 -1
- package/dist/src/reactive/deep-watch.d.ts +0 -20
- package/dist/src/reactive/deep-watch.d.ts.map +0 -1
- package/dist/src/reactive/describe.d.ts +0 -12
- package/dist/src/reactive/describe.d.ts.map +0 -1
- package/dist/src/reactive/effect-context.d.ts +0 -34
- package/dist/src/reactive/effect-context.d.ts.map +0 -1
- package/dist/src/reactive/effects.d.ts +0 -164
- package/dist/src/reactive/effects.d.ts.map +0 -1
- package/dist/src/reactive/index.d.ts +0 -19
- package/dist/src/reactive/index.d.ts.map +0 -1
- package/dist/src/reactive/map.d.ts +0 -28
- package/dist/src/reactive/map.d.ts.map +0 -1
- package/dist/src/reactive/memoize.d.ts +0 -28
- package/dist/src/reactive/memoize.d.ts.map +0 -1
- package/dist/src/reactive/non-reactive-state.d.ts +0 -9
- package/dist/src/reactive/non-reactive-state.d.ts.map +0 -1
- package/dist/src/reactive/non-reactive.d.ts +0 -11
- package/dist/src/reactive/non-reactive.d.ts.map +0 -1
- package/dist/src/reactive/project.d.ts +0 -40
- package/dist/src/reactive/project.d.ts.map +0 -1
- package/dist/src/reactive/proxy-state.d.ts +0 -8
- package/dist/src/reactive/proxy-state.d.ts.map +0 -1
- package/dist/src/reactive/proxy.d.ts +0 -23
- package/dist/src/reactive/proxy.d.ts.map +0 -1
- package/dist/src/reactive/record.d.ts +0 -115
- package/dist/src/reactive/record.d.ts.map +0 -1
- package/dist/src/reactive/register.d.ts +0 -125
- package/dist/src/reactive/register.d.ts.map +0 -1
- package/dist/src/reactive/registry.d.ts +0 -21
- package/dist/src/reactive/registry.d.ts.map +0 -1
- package/dist/src/reactive/set.d.ts +0 -26
- package/dist/src/reactive/set.d.ts.map +0 -1
- package/dist/src/reactive/tracking.d.ts +0 -7
- package/dist/src/reactive/tracking.d.ts.map +0 -1
- package/dist/src/reactive/types.d.ts +0 -424
- package/dist/src/reactive/types.d.ts.map +0 -1
- package/dist/src/reactive/watch.d.ts +0 -48
- package/dist/src/reactive/watch.d.ts.map +0 -1
- package/dist/src/std-decorators.d.ts +0 -45
- package/dist/src/std-decorators.d.ts.map +0 -1
- package/dist/src/utils.d.ts +0 -49
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/zone.d.ts +0 -40
- package/dist/src/zone.d.ts.map +0 -1
- package/docs/reactive/describe.md +0 -85
- package/docs/reactive/project.md +0 -93
- package/src/async/browser.ts +0 -323
- package/src/async/index.ts +0 -27
- package/src/async/node.ts +0 -92
- package/src/decorator.ts +0 -272
- package/src/destroyable.ts +0 -199
- package/src/entry-browser.ts +0 -5
- package/src/entry-node.ts +0 -5
- package/src/eventful.ts +0 -110
- package/src/flavored.ts +0 -106
- package/src/index.d.ts +0 -12
- package/src/index.ts +0 -64
- package/src/indexable.ts +0 -526
- package/src/introspection.ts +0 -59
- package/src/iterableWeak.ts +0 -233
- package/src/mixins.ts +0 -123
- package/src/promiseChain.ts +0 -110
- package/src/reactive/array.ts +0 -500
- package/src/reactive/buffer.ts +0 -328
- package/src/reactive/change.ts +0 -131
- package/src/reactive/deep-touch.ts +0 -273
- package/src/reactive/deep-watch-state.ts +0 -82
- package/src/reactive/deep-watch.ts +0 -171
- package/src/reactive/describe.ts +0 -39
- package/src/reactive/effect-context.ts +0 -83
- package/src/reactive/effects.ts +0 -1434
- package/src/reactive/index.ts +0 -72
- package/src/reactive/map.ts +0 -142
- package/src/reactive/memoize.ts +0 -186
- package/src/reactive/non-reactive-state.ts +0 -49
- package/src/reactive/non-reactive.ts +0 -43
- package/src/reactive/project.md +0 -107
- package/src/reactive/project.ts +0 -430
- package/src/reactive/proxy-state.ts +0 -27
- package/src/reactive/proxy.ts +0 -282
- package/src/reactive/record.ts +0 -181
- package/src/reactive/register.ts +0 -538
- package/src/reactive/registry.ts +0 -72
- package/src/reactive/set.ts +0 -117
- package/src/reactive/tracking.ts +0 -41
- package/src/reactive/types.ts +0 -520
- package/src/reactive/watch.ts +0 -180
- package/src/std-decorators.ts +0 -256
- package/src/utils.ts +0 -300
- package/src/zone.ts +0 -142
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { cleanup, type EffectCloser, type ScopedCallback } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Provides type-safe access to a source object's property within the organized callback.
|
|
4
|
-
* @template Source - The type of the source object
|
|
5
|
-
* @template Key - The type of the property key in the source object
|
|
6
|
-
*/
|
|
7
|
-
export type OrganizedAccess<Source extends Record<PropertyKey, any>, Key extends keyof Source> = {
|
|
8
|
-
/** The property key being accessed */
|
|
9
|
-
readonly key: Key;
|
|
10
|
-
/**
|
|
11
|
-
* Gets the current value of the property from the source object
|
|
12
|
-
* @returns The current value of the property
|
|
13
|
-
*/
|
|
14
|
-
get(): Source[Key];
|
|
15
|
-
/**
|
|
16
|
-
* Updates the property value in the source object
|
|
17
|
-
* @param value - The new value to set
|
|
18
|
-
* @returns {boolean} True if the update was successful
|
|
19
|
-
*/
|
|
20
|
-
set(value: Source[Key]): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* The current value of the property (equivalent to using get()/set() directly)
|
|
23
|
-
*/
|
|
24
|
-
value: Source[Key];
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Callback function type for the organized function that processes each source property.
|
|
28
|
-
* @template Source - The type of the source object
|
|
29
|
-
* @template Target - The type of the target object
|
|
30
|
-
*/
|
|
31
|
-
export type OrganizedCallback<Source extends Record<PropertyKey, any>, Target extends object> = <Key extends keyof Source>(
|
|
32
|
-
/**
|
|
33
|
-
* Accessor object for the current source property
|
|
34
|
-
*/
|
|
35
|
-
access: OrganizedAccess<Source, Key>,
|
|
36
|
-
/**
|
|
37
|
-
* The target object where organized data will be stored
|
|
38
|
-
*/
|
|
39
|
-
target: Target) => EffectCloser | undefined;
|
|
40
|
-
/**
|
|
41
|
-
* The result type of the organized function, combining the target object with cleanup capability.
|
|
42
|
-
* @template Target - The type of the target object
|
|
43
|
-
*/
|
|
44
|
-
export type OrganizedResult<Target extends object> = Target & {
|
|
45
|
-
/**
|
|
46
|
-
* Cleanup function to dispose of all reactive bindings created by organized().
|
|
47
|
-
* This is automatically called when the effect that created the organized binding is disposed.
|
|
48
|
-
*/
|
|
49
|
-
[cleanup]: ScopedCallback;
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* Organizes a source object's properties into a target object using a callback function.
|
|
53
|
-
* This creates a reactive mapping between source properties and a target object,
|
|
54
|
-
* automatically handling property additions, updates, and removals.
|
|
55
|
-
*
|
|
56
|
-
* @template Source - The type of the source object
|
|
57
|
-
* @template Target - The type of the target object (defaults to Record<PropertyKey, any>)
|
|
58
|
-
*
|
|
59
|
-
* @param {Source} source - The source object to organize
|
|
60
|
-
* @param {OrganizedCallback<Source, Target>} apply - Callback function that defines how each source property is mapped to the target
|
|
61
|
-
* @param {Target} [baseTarget={}] - Optional base target object to use (will be made reactive if not already)
|
|
62
|
-
*
|
|
63
|
-
* @returns {OrganizedResult<Target>} The target object with cleanup capability
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* // Organize user permissions into role-based access
|
|
67
|
-
* const user = reactive({ isAdmin: true, canEdit: false });
|
|
68
|
-
* const permissions = organized(
|
|
69
|
-
* user,
|
|
70
|
-
* (access, target) => {
|
|
71
|
-
* if (access.key === 'isAdmin') {
|
|
72
|
-
* target.hasFullAccess = access.value;
|
|
73
|
-
* }
|
|
74
|
-
* target[`can${access.key.charAt(0).toUpperCase() + access.key.slice(1)}`] = access.value;
|
|
75
|
-
* }
|
|
76
|
-
* );
|
|
77
|
-
*
|
|
78
|
-
* @example
|
|
79
|
-
* // Transform object structure with cleanup
|
|
80
|
-
* const source = reactive({ firstName: 'John', lastName: 'Doe' });
|
|
81
|
-
* const formatted = organized(
|
|
82
|
-
* source,
|
|
83
|
-
* (access, target) => {
|
|
84
|
-
* if (access.key === 'firstName' || access.key === 'lastName') {
|
|
85
|
-
* target.fullName = `${source.firstName} ${source.lastName}`.trim();
|
|
86
|
-
* }
|
|
87
|
-
* }
|
|
88
|
-
* );
|
|
89
|
-
*
|
|
90
|
-
* @example
|
|
91
|
-
* // Using with cleanup in a component
|
|
92
|
-
* effect(() => {
|
|
93
|
-
* const data = fetchData();
|
|
94
|
-
* const organizedData = organized(data, (access, target) => {
|
|
95
|
-
* // Transform data
|
|
96
|
-
* });
|
|
97
|
-
*
|
|
98
|
-
* // The cleanup will be called automatically when the effect is disposed
|
|
99
|
-
* return () => organizedData[cleanup]();
|
|
100
|
-
* });
|
|
101
|
-
*/
|
|
102
|
-
export declare function organized<Source extends Record<PropertyKey, any>, Target extends object = Record<PropertyKey, any>>(source: Source, apply: OrganizedCallback<Source, Target>, baseTarget?: Target): OrganizedResult<Target>;
|
|
103
|
-
/**
|
|
104
|
-
* Organizes a property on a target object
|
|
105
|
-
* Shortcut for defineProperty/delete with touched signal
|
|
106
|
-
* @param target - The target object
|
|
107
|
-
* @param property - The property to organize
|
|
108
|
-
* @param access - The access object
|
|
109
|
-
* @returns The property descriptor
|
|
110
|
-
*/
|
|
111
|
-
export declare function organize<T>(target: object, property: PropertyKey, access: {
|
|
112
|
-
get?(): T;
|
|
113
|
-
set?(value: T): boolean;
|
|
114
|
-
}): () => boolean;
|
|
115
|
-
//# sourceMappingURL=record.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../src/reactive/record.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,MAAM,SAAS,CAAA;AAEhB;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,MAAM,MAAM,IAAI;IAChG,sCAAsC;IACtC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IAEjB;;;OAGG;IACH,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;IAElB;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;IAEhC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;CAClB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,SAAS,MAAM,IAAI,CAC/F,GAAG,SAAS,MAAM,MAAM;AAExB;;GAEG;AACH,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC;AAEpC;;GAEG;AACH,MAAM,EAAE,MAAM,KACV,YAAY,GAAG,SAAS,CAAA;AAE7B;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,MAAM,IAAI,MAAM,GAAG;IAC7D;;;OAGG;IACH,CAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,SAAS,CACxB,MAAM,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EACvC,MAAM,SAAS,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAEhD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,UAAU,GAAE,MAAqB,GAC/B,eAAe,CAAC,MAAM,CAAC,CA6BzB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACzB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE;IAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAA;CAAE,iBAU9C"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { ArrayReadForward, forwardArray, getAt, setAt } from '../indexable';
|
|
2
|
-
type KeyFunction<T, K extends PropertyKey> = (item: T) => K;
|
|
3
|
-
/**
|
|
4
|
-
* Events emitted by the Register for CRUD operations
|
|
5
|
-
*/
|
|
6
|
-
export interface RegisterEvents<T, K extends PropertyKey> {
|
|
7
|
-
/**
|
|
8
|
-
* Emitted when a new item is added to the register
|
|
9
|
-
*/
|
|
10
|
-
add: (item: T, key: K, index: number) => void;
|
|
11
|
-
/**
|
|
12
|
-
* Emitted when an item is removed from the register
|
|
13
|
-
*/
|
|
14
|
-
delete: (item: T, key: K, index: number) => void;
|
|
15
|
-
/**
|
|
16
|
-
* Emitted when an item's value is updated (same key, new value)
|
|
17
|
-
*/
|
|
18
|
-
update: (oldItem: T, newItem: T, key: K, index: number) => void;
|
|
19
|
-
/**
|
|
20
|
-
* Emitted when an item's key changes (rekey operation)
|
|
21
|
-
*/
|
|
22
|
-
rekey: (item: T, oldKey: K, newKey: K, index: number) => void;
|
|
23
|
-
/**
|
|
24
|
-
* Index signature for EventsBase compatibility
|
|
25
|
-
*/
|
|
26
|
-
[key: string]: (...args: any[]) => void;
|
|
27
|
-
}
|
|
28
|
-
interface RegisterInstance<T> extends ArrayReadForward<T> {
|
|
29
|
-
[index: number]: T;
|
|
30
|
-
}
|
|
31
|
-
declare const RegisterClass_base: new () => ArrayReadForward<any> & {
|
|
32
|
-
[x: number]: any;
|
|
33
|
-
toArray(): any[];
|
|
34
|
-
};
|
|
35
|
-
declare class RegisterClass<T, K extends PropertyKey = PropertyKey> extends RegisterClass_base implements RegisterInstance<T> {
|
|
36
|
-
#private;
|
|
37
|
-
protected get [forwardArray](): readonly T[];
|
|
38
|
-
/**
|
|
39
|
-
* Register event listeners for CRUD operations
|
|
40
|
-
*/
|
|
41
|
-
on(events: Partial<RegisterEvents<T, K>>): void;
|
|
42
|
-
on<EventType extends keyof RegisterEvents<T, K>>(event: EventType, cb: RegisterEvents<T, K>[EventType]): () => void;
|
|
43
|
-
/**
|
|
44
|
-
* Remove event listeners
|
|
45
|
-
*/
|
|
46
|
-
off(events: Partial<RegisterEvents<T, K>>): void;
|
|
47
|
-
off<EventType extends keyof RegisterEvents<T, K>>(event: EventType, cb?: RegisterEvents<T, K>[EventType]): void;
|
|
48
|
-
/**
|
|
49
|
-
* Register a global hook that receives all events
|
|
50
|
-
*/
|
|
51
|
-
hook(cb: <EventType extends keyof RegisterEvents<T, K>>(event: EventType, ...args: Parameters<RegisterEvents<T, K>[EventType]>) => void): () => void;
|
|
52
|
-
constructor(keyFn: KeyFunction<T, K>, initial?: Iterable<T>);
|
|
53
|
-
private ensureKey;
|
|
54
|
-
private assertValidKey;
|
|
55
|
-
private setKeyValue;
|
|
56
|
-
private cleanupValue;
|
|
57
|
-
private disposeKeyEffects;
|
|
58
|
-
private incrementUsage;
|
|
59
|
-
private decrementUsage;
|
|
60
|
-
private normalizeIndex;
|
|
61
|
-
private assignAt;
|
|
62
|
-
private insertKeyValue;
|
|
63
|
-
private rebuildFrom;
|
|
64
|
-
get length(): number;
|
|
65
|
-
[getAt](index: number): T | undefined;
|
|
66
|
-
[setAt](index: number, value: T): void;
|
|
67
|
-
push(...items: T[]): number;
|
|
68
|
-
pop(): T | undefined;
|
|
69
|
-
shift(): T | undefined;
|
|
70
|
-
unshift(...items: T[]): number;
|
|
71
|
-
splice(start: number, deleteCount?: number, ...items: T[]): T[];
|
|
72
|
-
clear(): void;
|
|
73
|
-
get(key: K): T | undefined;
|
|
74
|
-
set(key: K, value: T): void;
|
|
75
|
-
remove(key: K): void;
|
|
76
|
-
removeAt(index: number): T | undefined;
|
|
77
|
-
/**
|
|
78
|
-
* Keep only the items for which the predicate returns true.
|
|
79
|
-
* Items for which the predicate returns false are removed.
|
|
80
|
-
*
|
|
81
|
-
* The predicate is evaluated once per distinct key; duplicate keys
|
|
82
|
-
* will follow the same keep/remove decision.
|
|
83
|
-
*/
|
|
84
|
-
keep(predicate: (value: T) => boolean): void;
|
|
85
|
-
hasKey(key: K): boolean;
|
|
86
|
-
indexOfKey(key: K): number;
|
|
87
|
-
mapKeys(): IterableIterator<K>;
|
|
88
|
-
update(...values: T[]): void;
|
|
89
|
-
upsert(insert: (value: T) => void, ...values: T[]): void;
|
|
90
|
-
entries(): IterableIterator<[number, T]>;
|
|
91
|
-
[Symbol.iterator](): IterableIterator<T>;
|
|
92
|
-
toString(): string;
|
|
93
|
-
at(index: number): T | undefined;
|
|
94
|
-
reverse(): this;
|
|
95
|
-
sort(compareFn?: ((a: T, b: T) => number) | undefined): this;
|
|
96
|
-
fill(value: T, start?: number, end?: number): this;
|
|
97
|
-
copyWithin(target: number, start: number, end?: number): this;
|
|
98
|
-
}
|
|
99
|
-
export type Register<T, K extends PropertyKey = PropertyKey> = RegisterClass<T, K> & T[];
|
|
100
|
-
export declare const Register: new <T, K extends PropertyKey = PropertyKey>(keyFn: KeyFunction<T, K>, initial?: Iterable<T>) => Register<T, K>;
|
|
101
|
-
/**
|
|
102
|
-
* Creates a reactive Register - an ordered, array-like collection with stable key-based identity.
|
|
103
|
-
*
|
|
104
|
-
* Register combines array semantics (indexable access, ordering, iteration) with Map-like
|
|
105
|
-
* key-based lookups. Items with the same key share the same value instance, making it ideal
|
|
106
|
-
* for UI lists keyed by IDs or when you need to preserve identity across reorders.
|
|
107
|
-
*
|
|
108
|
-
* @param keyFn - Function that extracts the key from each item
|
|
109
|
-
* @param initial - Optional initial items to populate the register
|
|
110
|
-
* @returns A reactive Register instance
|
|
111
|
-
*
|
|
112
|
-
* @example
|
|
113
|
-
* ```typescript
|
|
114
|
-
* const users = register(
|
|
115
|
-
* (user: User) => user.id,
|
|
116
|
-
* [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }]
|
|
117
|
-
* )
|
|
118
|
-
*
|
|
119
|
-
* users.push({ id: 3, name: 'Charlie' })
|
|
120
|
-
* const bob = users.get(2) // Get by key
|
|
121
|
-
* ```
|
|
122
|
-
*/
|
|
123
|
-
export declare function register<T, K extends PropertyKey = PropertyKey>(keyFn: KeyFunction<T, K>, initial?: Iterable<T>): Register<T, K>;
|
|
124
|
-
export {};
|
|
125
|
-
//# sourceMappingURL=register.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/reactive/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { type EffectNode, type EffectTrigger } from './types';
|
|
2
|
-
export declare let effectToReactiveObjects: WeakMap<import("./types").ScopedCallback, Set<object>>;
|
|
3
|
-
export declare let watchers: WeakMap<object, Map<any, Set<import("./types").ScopedCallback>>>;
|
|
4
|
-
export declare let effectNodes: WeakMap<import("./types").ScopedCallback, EffectNode>;
|
|
5
|
-
export declare function getEffectNode(effect: EffectTrigger): EffectNode;
|
|
6
|
-
export declare function resetRegistry(): void;
|
|
7
|
-
/**
|
|
8
|
-
* Marks a function with its root function for effect tracking
|
|
9
|
-
* Enforces strict unicity: A root function can only identify ONE function.
|
|
10
|
-
* @param fn - The function to mark
|
|
11
|
-
* @param root - The root function
|
|
12
|
-
* @returns The marked function
|
|
13
|
-
*/
|
|
14
|
-
export declare function markWithRoot<T extends Function>(fn: T, root: any): T;
|
|
15
|
-
/**
|
|
16
|
-
* Gets the root function of a function for effect tracking
|
|
17
|
-
* @param fn - The function to get the root of
|
|
18
|
-
* @returns The root function
|
|
19
|
-
*/
|
|
20
|
-
export declare function getRoot<T extends Function | undefined>(fn: T): T;
|
|
21
|
-
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/reactive/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,UAAU,EAAE,KAAK,aAAa,EAAgB,MAAM,SAAS,CAAA;AAG/F,eAAO,IAAI,uBAAuB,wDAA4C,CAAA;AAG9E,eAAO,IAAI,QAAQ,kEAAsD,CAAA;AAGzE,eAAO,IAAI,WAAW,uDAA2C,CAAA;AAEjE,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CAO/D;AAKD,wBAAgB,aAAa,SAK5B;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,CAwBpE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAGhE"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Reactive wrapper around JavaScript's WeakSet class
|
|
3
|
-
* Only tracks individual value operations, no size tracking (WeakSet limitation)
|
|
4
|
-
*/
|
|
5
|
-
export declare abstract class ReactiveWeakSet<T extends object> extends WeakSet<T> {
|
|
6
|
-
add(value: T): this;
|
|
7
|
-
delete(value: T): boolean;
|
|
8
|
-
has(value: T): boolean;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Reactive wrapper around JavaScript's Set class
|
|
12
|
-
* Tracks size changes, individual value operations, and collection-wide operations
|
|
13
|
-
*/
|
|
14
|
-
export declare abstract class ReactiveSet<T> extends Set<T> {
|
|
15
|
-
get size(): number;
|
|
16
|
-
add(value: T): this;
|
|
17
|
-
clear(): void;
|
|
18
|
-
delete(value: T): boolean;
|
|
19
|
-
has(value: T): boolean;
|
|
20
|
-
entries(): Generator<[T, T]>;
|
|
21
|
-
forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void;
|
|
22
|
-
keys(): Generator<T>;
|
|
23
|
-
values(): Generator<T>;
|
|
24
|
-
[Symbol.iterator](): SetIterator<T>;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=set.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../src/reactive/set.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,8BAAsB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACzE,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAWnB,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAOzB,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;CAItB;AAED;;;GAGG;AACH,8BAAsB,WAAW,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAC;IAClD,IAAI,IAAI,IAAI,MAAM,CAIjB;IAED,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAanB,KAAK,IAAI,IAAI;IAUb,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAWzB,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAKtB,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAK5B,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,GAAG,GAAG,IAAI;IAKpF,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC;IAKpB,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;IAKtB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC;CAWnC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Marks a property as a dependency of the current effect
|
|
3
|
-
* @param obj - The object containing the property
|
|
4
|
-
* @param prop - The property name (defaults to allProps)
|
|
5
|
-
*/
|
|
6
|
-
export declare function dependant(obj: any, prop?: any): void;
|
|
7
|
-
//# sourceMappingURL=tracking.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tracking.d.ts","sourceRoot":"","sources":["../../../src/reactive/tracking.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,GAAc,QA8BvD"}
|