jotai-solid-api 1.0.0 → 1.2.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 +13 -0
- package/dist/index.d.ts +176 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +418 -13
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
[](https://deepwiki.com/doeixd/jotai-solid-api)
|
|
2
|
+
|
|
1
3
|
# jotai-solid-api
|
|
2
4
|
|
|
3
5
|
Solid-style reactive primitives on top of `jotai/vanilla`, plus a React component wrapper so app code can stay hook-free.
|
|
@@ -12,14 +14,19 @@ npm install jotai-solid-api jotai react
|
|
|
12
14
|
|
|
13
15
|
- `component(setup, { memo?, displayName? })`
|
|
14
16
|
- `createSignal(initial)`
|
|
17
|
+
- `createDeferred(source, options?)`
|
|
18
|
+
- `createUniqueId(prefix?)`
|
|
15
19
|
- `fromSolidSignal(signal)` / `toSolidSignal(signal)`
|
|
16
20
|
- `fromSignal(signal)` / `toSignal(signal)`
|
|
17
21
|
- `createMemo(compute)`
|
|
18
22
|
- `createEffect(effect)`
|
|
19
23
|
- `createLayoutEffect(effect)`
|
|
20
24
|
- `createComputed(compute)`
|
|
25
|
+
- `createReaction(onInvalidate)`
|
|
26
|
+
- `on(deps, fn, { defer? })`
|
|
21
27
|
- `onMount(callback)`
|
|
22
28
|
- `onCleanup(cleanup)` / `cleanup(cleanup)`
|
|
29
|
+
- `createRoot(init)`
|
|
23
30
|
- `batch(fn)`
|
|
24
31
|
- `createSelector(source, equals?)`
|
|
25
32
|
- `resolveMaybeAccessor(value)` / `toValue(value)`
|
|
@@ -29,6 +36,8 @@ npm install jotai-solid-api jotai react
|
|
|
29
36
|
- `createAsync(compute)`
|
|
30
37
|
- `use(accessorOrPromise)`
|
|
31
38
|
- `createStore(initial)` / `setStore(next)`
|
|
39
|
+
- `produce(recipe)`
|
|
40
|
+
- `reconcile(value, options?)`
|
|
32
41
|
- `createMutable(initial)` / `createMutableStore(initial)`
|
|
33
42
|
- `createReactiveArray(initial)` / `createArrayStore(initial)`
|
|
34
43
|
- `createProjection(source, initialize, mutate)`
|
|
@@ -37,6 +46,7 @@ npm install jotai-solid-api jotai react
|
|
|
37
46
|
- `lazy(loader)` / `Suspense`
|
|
38
47
|
- `untrack(fn)`
|
|
39
48
|
- control flow: `Show`, `For`, `Index`, `Switch`, `Match`
|
|
49
|
+
- props helpers: `mergeProps`, `splitProps`, `children`
|
|
40
50
|
|
|
41
51
|
### Aliases
|
|
42
52
|
|
|
@@ -144,6 +154,9 @@ export const App = component(() => {
|
|
|
144
154
|
## Notes
|
|
145
155
|
|
|
146
156
|
- `setup` runs once per component instance, and should return a render function (`() => ReactNode`).
|
|
157
|
+
- Primitives also work outside components using a default global reactive scope.
|
|
158
|
+
- Use `createRoot(...)` when you need an isolated disposable non-React scope.
|
|
159
|
+
- For SSR, avoid implicit globals: create primitives inside components or inside `createRoot(...)` per request.
|
|
147
160
|
- Reads inside the render function are tracked and trigger rerenders.
|
|
148
161
|
- Reads inside `createMemo` and effects are tracked and rerun when dependencies change.
|
|
149
162
|
- `createStore` is immutable-by-default (`setStore` updates), while `createMutable` and `createReactiveArray` allow direct mutation.
|
package/dist/index.d.ts
CHANGED
|
@@ -38,6 +38,19 @@ export type SolidSetter<T> = (nextValue: T | ((prev: T) => T)) => unknown;
|
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
40
|
export type SolidSignal<T> = readonly [Accessor<T>, SolidSetter<T>];
|
|
41
|
+
/**
|
|
42
|
+
* Falsy values in JavaScript conditional checks.
|
|
43
|
+
*/
|
|
44
|
+
export type Falsy = false | 0 | 0n | "" | null | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Removes JavaScript-falsy values from a type.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* type T = Truthy<string | null | ""> // string
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export type Truthy<T> = Exclude<T, Falsy>;
|
|
41
54
|
/**
|
|
42
55
|
* Async resource lifecycle states.
|
|
43
56
|
*
|
|
@@ -156,6 +169,34 @@ export declare const toSignal: typeof toSolidSignal;
|
|
|
156
169
|
* ```
|
|
157
170
|
*/
|
|
158
171
|
export declare function createMemo<T>(compute: () => T): Accessor<T>;
|
|
172
|
+
/**
|
|
173
|
+
* Defers propagation of a source accessor value.
|
|
174
|
+
*
|
|
175
|
+
* @param source Source accessor to defer.
|
|
176
|
+
* @param options Optional deferral settings.
|
|
177
|
+
* @returns Accessor containing the deferred value.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```ts
|
|
181
|
+
* const deferredQuery = createDeferred(query, { timeoutMs: 50 })
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
export declare function createDeferred<T>(source: Accessor<T>, options?: {
|
|
185
|
+
timeoutMs?: number;
|
|
186
|
+
equals?: (left: T, right: T) => boolean;
|
|
187
|
+
}): Accessor<T>;
|
|
188
|
+
/**
|
|
189
|
+
* Creates a unique id string for the current scope.
|
|
190
|
+
*
|
|
191
|
+
* @param prefix Prefix for the generated id.
|
|
192
|
+
* @returns Unique id string.
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```ts
|
|
196
|
+
* const inputId = createUniqueId("field-")
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
export declare function createUniqueId(prefix?: string): string;
|
|
159
200
|
/**
|
|
160
201
|
* Alias for {@link createMemo}.
|
|
161
202
|
*
|
|
@@ -256,7 +297,7 @@ export declare function onMount(callback: () => void | Cleanup): void;
|
|
|
256
297
|
*/
|
|
257
298
|
export declare const mount: typeof onMount;
|
|
258
299
|
/**
|
|
259
|
-
* Registers cleanup in setup scope or
|
|
300
|
+
* Registers cleanup in the current effect, active setup scope, or default global scope.
|
|
260
301
|
*
|
|
261
302
|
* @param cleanup Cleanup callback invoked on re-run or scope disposal.
|
|
262
303
|
*
|
|
@@ -278,6 +319,21 @@ export declare function onCleanup(cleanup: Cleanup): void;
|
|
|
278
319
|
* ```
|
|
279
320
|
*/
|
|
280
321
|
export declare const cleanup: typeof onCleanup;
|
|
322
|
+
/**
|
|
323
|
+
* Creates an isolated reactive scope and returns a disposal handle.
|
|
324
|
+
*
|
|
325
|
+
* @param init Initializer executed inside the new scope.
|
|
326
|
+
* @returns Return value of `init`.
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```ts
|
|
330
|
+
* const value = createRoot((dispose) => {
|
|
331
|
+
* const [count, setCount] = createSignal(0)
|
|
332
|
+
* return { count, setCount, dispose }
|
|
333
|
+
* })
|
|
334
|
+
* ```
|
|
335
|
+
*/
|
|
336
|
+
export declare function createRoot<T>(init: (dispose: () => void) => T): T;
|
|
281
337
|
/**
|
|
282
338
|
* Batches reactive notifications and flushes once at the end.
|
|
283
339
|
*
|
|
@@ -293,6 +349,31 @@ export declare const cleanup: typeof onCleanup;
|
|
|
293
349
|
* ```
|
|
294
350
|
*/
|
|
295
351
|
export declare function batch<T>(fn: () => T): T;
|
|
352
|
+
/**
|
|
353
|
+
* Dependency helper for effects. Runs `fn` only when provided dependencies change.
|
|
354
|
+
*
|
|
355
|
+
* @param deps Dependency accessor or accessor list.
|
|
356
|
+
* @param fn Callback receiving current dependency values and previous values.
|
|
357
|
+
* @param options Optional behavior (`defer` skips the first invocation).
|
|
358
|
+
* @returns Effect callback compatible with `createEffect`.
|
|
359
|
+
*
|
|
360
|
+
* @example
|
|
361
|
+
* ```ts
|
|
362
|
+
* createEffect(
|
|
363
|
+
* on([userId, locale], ([id, nextLocale], prev) => {
|
|
364
|
+
* refetchUser(id, nextLocale)
|
|
365
|
+
* }, { defer: true }),
|
|
366
|
+
* )
|
|
367
|
+
* ```
|
|
368
|
+
*/
|
|
369
|
+
export declare function on<T>(deps: Accessor<T>, fn: (input: T, prevInput: T | undefined, prevValue: undefined) => void, options?: {
|
|
370
|
+
defer?: boolean;
|
|
371
|
+
}): () => void;
|
|
372
|
+
export declare function on<T extends readonly unknown[]>(deps: {
|
|
373
|
+
[K in keyof T]: Accessor<T[K]>;
|
|
374
|
+
}, fn: (input: T, prevInput: T | undefined, prevValue: undefined) => void, options?: {
|
|
375
|
+
defer?: boolean;
|
|
376
|
+
}): () => void;
|
|
296
377
|
/**
|
|
297
378
|
* Executes a function without dependency tracking.
|
|
298
379
|
*
|
|
@@ -305,6 +386,23 @@ export declare function batch<T>(fn: () => T): T;
|
|
|
305
386
|
* ```
|
|
306
387
|
*/
|
|
307
388
|
export declare function untrack<T>(fn: () => T): T;
|
|
389
|
+
/**
|
|
390
|
+
* Creates a manually armed reaction.
|
|
391
|
+
*
|
|
392
|
+
* The returned `track` function subscribes to dependencies read inside `trackFn`.
|
|
393
|
+
* When any dependency changes, `onInvalidate` runs once and the reaction disarms
|
|
394
|
+
* until `track(...)` is called again.
|
|
395
|
+
*
|
|
396
|
+
* @param onInvalidate Callback invoked when tracked dependencies change.
|
|
397
|
+
* @returns Track function used to arm the reaction.
|
|
398
|
+
*
|
|
399
|
+
* @example
|
|
400
|
+
* ```ts
|
|
401
|
+
* const track = createReaction(() => console.log("changed"))
|
|
402
|
+
* track(() => state.userId)
|
|
403
|
+
* ```
|
|
404
|
+
*/
|
|
405
|
+
export declare function createReaction(onInvalidate: () => void): (trackFn: () => unknown) => void;
|
|
308
406
|
/**
|
|
309
407
|
* Creates an async resource from a fetcher.
|
|
310
408
|
*
|
|
@@ -397,6 +495,34 @@ export declare function use<T>(value: PromiseLike<T>): T;
|
|
|
397
495
|
* ```
|
|
398
496
|
*/
|
|
399
497
|
export type SetStore<T> = (next: T | Partial<T> | ((prev: T) => T | Partial<T>)) => T;
|
|
498
|
+
/**
|
|
499
|
+
* Produces immutable updates using a mutable draft callback.
|
|
500
|
+
*
|
|
501
|
+
* @param recipe Draft mutator callback.
|
|
502
|
+
* @returns Updater function suitable for `setStore` or signal setters.
|
|
503
|
+
*
|
|
504
|
+
* @example
|
|
505
|
+
* ```ts
|
|
506
|
+
* setStore(produce((draft) => { draft.user.name = "Ada" }))
|
|
507
|
+
* ```
|
|
508
|
+
*/
|
|
509
|
+
export declare function produce<T>(recipe: (draft: T) => void): (previous: T) => T;
|
|
510
|
+
/**
|
|
511
|
+
* Reconciles structural updates while preserving matching nested references.
|
|
512
|
+
*
|
|
513
|
+
* @param value Next value to reconcile into current state.
|
|
514
|
+
* @param options Reconciliation behavior.
|
|
515
|
+
* @returns Updater function suitable for `setStore` or signal setters.
|
|
516
|
+
*
|
|
517
|
+
* @example
|
|
518
|
+
* ```ts
|
|
519
|
+
* setStore(reconcile(nextData, { key: "id", merge: true }))
|
|
520
|
+
* ```
|
|
521
|
+
*/
|
|
522
|
+
export declare function reconcile<T>(value: T, options?: {
|
|
523
|
+
key?: string | number;
|
|
524
|
+
merge?: boolean;
|
|
525
|
+
}): (previous: T) => T;
|
|
400
526
|
/**
|
|
401
527
|
* Creates an immutable reactive object store.
|
|
402
528
|
*
|
|
@@ -675,6 +801,51 @@ export declare const defineComponent: typeof component;
|
|
|
675
801
|
* ```
|
|
676
802
|
*/
|
|
677
803
|
export type MaybeAccessor<T> = T | Accessor<T>;
|
|
804
|
+
type UnionToIntersection<T> = (T extends unknown ? (arg: T) => void : never) extends (arg: infer R) => void ? R : never;
|
|
805
|
+
/**
|
|
806
|
+
* Merges multiple props objects with lazy property resolution.
|
|
807
|
+
* Later sources take precedence.
|
|
808
|
+
*
|
|
809
|
+
* @param sources Props sources to merge.
|
|
810
|
+
* @returns Merged props proxy.
|
|
811
|
+
*
|
|
812
|
+
* @example
|
|
813
|
+
* ```ts
|
|
814
|
+
* const props = mergeProps({ a: 1 }, defaults, incoming)
|
|
815
|
+
* ```
|
|
816
|
+
*/
|
|
817
|
+
export declare function mergeProps<TSources extends readonly object[]>(...sources: TSources): UnionToIntersection<TSources[number]>;
|
|
818
|
+
type SplitGroups<T extends object, Groups extends readonly (readonly (keyof T)[])[]> = {
|
|
819
|
+
[I in keyof Groups]: Pick<T, Groups[I][number]>;
|
|
820
|
+
};
|
|
821
|
+
/**
|
|
822
|
+
* Splits props into picked groups plus a remainder object.
|
|
823
|
+
*
|
|
824
|
+
* @param props Source props object.
|
|
825
|
+
* @param groups Key groups to pick.
|
|
826
|
+
* @returns Tuple of picked groups followed by remainder props.
|
|
827
|
+
*
|
|
828
|
+
* @example
|
|
829
|
+
* ```ts
|
|
830
|
+
* const [local, others] = splitProps(props, ["id", "name"])
|
|
831
|
+
* ```
|
|
832
|
+
*/
|
|
833
|
+
export declare function splitProps<T extends object, Groups extends readonly (readonly (keyof T)[])[]>(props: T, ...groups: Groups): [...SplitGroups<T, Groups>, Omit<T, Groups[number][number]>];
|
|
834
|
+
/**
|
|
835
|
+
* Resolves and memoizes children access.
|
|
836
|
+
*
|
|
837
|
+
* @param fn Accessor returning children nodes.
|
|
838
|
+
* @returns Accessor with `toArray()` helper.
|
|
839
|
+
*
|
|
840
|
+
* @example
|
|
841
|
+
* ```ts
|
|
842
|
+
* const resolved = children(() => props().children)
|
|
843
|
+
* const list = resolved.toArray()
|
|
844
|
+
* ```
|
|
845
|
+
*/
|
|
846
|
+
export declare function children(fn: Accessor<React.ReactNode>): Accessor<React.ReactNode> & {
|
|
847
|
+
toArray: () => React.ReactNode[];
|
|
848
|
+
};
|
|
678
849
|
/**
|
|
679
850
|
* Props for {@link Show}.
|
|
680
851
|
*
|
|
@@ -685,13 +856,13 @@ export type MaybeAccessor<T> = T | Accessor<T>;
|
|
|
685
856
|
*/
|
|
686
857
|
export type ShowProps<T> = {
|
|
687
858
|
/** Condition value (or accessor). Truthy renders children, falsy renders fallback. */
|
|
688
|
-
when: MaybeAccessor<T |
|
|
859
|
+
when: MaybeAccessor<T | Falsy>;
|
|
689
860
|
/** Content rendered when `when` is falsy. */
|
|
690
861
|
fallback?: React.ReactNode;
|
|
691
862
|
/** Reserved compatibility flag for Solid-style signatures. */
|
|
692
863
|
keyed?: boolean;
|
|
693
864
|
/** Render content or render function receiving narrowed truthy value. */
|
|
694
|
-
children: React.ReactNode | ((value:
|
|
865
|
+
children: React.ReactNode | ((value: Truthy<T>) => React.ReactNode);
|
|
695
866
|
};
|
|
696
867
|
/**
|
|
697
868
|
* Conditionally renders content when `when` is truthy.
|
|
@@ -771,9 +942,9 @@ export declare function Index<T>(props: IndexProps<T>): React.ReactNode;
|
|
|
771
942
|
*/
|
|
772
943
|
export type MatchProps<T> = {
|
|
773
944
|
/** Match condition (or accessor). First truthy Match is selected by Switch. */
|
|
774
|
-
when: MaybeAccessor<T |
|
|
945
|
+
when: MaybeAccessor<T | Falsy>;
|
|
775
946
|
/** Render content or render function receiving narrowed truthy match value. */
|
|
776
|
-
children: React.ReactNode | ((value:
|
|
947
|
+
children: React.ReactNode | ((value: Truthy<T>) => React.ReactNode);
|
|
777
948
|
};
|
|
778
949
|
/**
|
|
779
950
|
* Switch branch marker consumed by {@link Switch}.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -74,14 +74,19 @@ class DependencyTracker {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
class Scope {
|
|
77
|
-
constructor() {
|
|
77
|
+
constructor(options = {}) {
|
|
78
78
|
this.store = createJotaiStore();
|
|
79
79
|
this.disposables = new Set();
|
|
80
80
|
this.scopeCleanups = new Set();
|
|
81
81
|
this.layoutStarters = [];
|
|
82
82
|
this.effectStarters = [];
|
|
83
|
-
this.
|
|
84
|
-
this.
|
|
83
|
+
this.uniqueIdCounter = 0;
|
|
84
|
+
this.layoutStarted = Boolean(options.autoStart);
|
|
85
|
+
this.effectsStarted = Boolean(options.autoStart);
|
|
86
|
+
}
|
|
87
|
+
nextUniqueId(prefix) {
|
|
88
|
+
this.uniqueIdCounter += 1;
|
|
89
|
+
return `${prefix}${this.uniqueIdCounter}`;
|
|
85
90
|
}
|
|
86
91
|
register(disposable) {
|
|
87
92
|
this.disposables.add(disposable);
|
|
@@ -135,6 +140,16 @@ class Scope {
|
|
|
135
140
|
}
|
|
136
141
|
}
|
|
137
142
|
const scopeStack = [];
|
|
143
|
+
let globalScope = null;
|
|
144
|
+
function isServerRuntime() {
|
|
145
|
+
return typeof window === "undefined";
|
|
146
|
+
}
|
|
147
|
+
function getGlobalScope() {
|
|
148
|
+
if (!globalScope) {
|
|
149
|
+
globalScope = new Scope({ autoStart: true });
|
|
150
|
+
}
|
|
151
|
+
return globalScope;
|
|
152
|
+
}
|
|
138
153
|
function withScope(scope, fn) {
|
|
139
154
|
scopeStack.push(scope);
|
|
140
155
|
try {
|
|
@@ -146,10 +161,13 @@ function withScope(scope, fn) {
|
|
|
146
161
|
}
|
|
147
162
|
function activeScope() {
|
|
148
163
|
const scope = scopeStack[scopeStack.length - 1];
|
|
149
|
-
if (
|
|
150
|
-
|
|
164
|
+
if (scope) {
|
|
165
|
+
return scope;
|
|
166
|
+
}
|
|
167
|
+
if (isServerRuntime()) {
|
|
168
|
+
throw new Error("No active reactive scope in SSR context. Wrap primitive creation in createRoot(...) per request to avoid cross-request global state leaks.");
|
|
151
169
|
}
|
|
152
|
-
return
|
|
170
|
+
return getGlobalScope();
|
|
153
171
|
}
|
|
154
172
|
class SignalSource {
|
|
155
173
|
constructor(store, initialValue) {
|
|
@@ -394,6 +412,55 @@ export function createMemo(compute) {
|
|
|
394
412
|
scope.register(source);
|
|
395
413
|
return () => source.get();
|
|
396
414
|
}
|
|
415
|
+
/**
|
|
416
|
+
* Defers propagation of a source accessor value.
|
|
417
|
+
*
|
|
418
|
+
* @param source Source accessor to defer.
|
|
419
|
+
* @param options Optional deferral settings.
|
|
420
|
+
* @returns Accessor containing the deferred value.
|
|
421
|
+
*
|
|
422
|
+
* @example
|
|
423
|
+
* ```ts
|
|
424
|
+
* const deferredQuery = createDeferred(query, { timeoutMs: 50 })
|
|
425
|
+
* ```
|
|
426
|
+
*/
|
|
427
|
+
export function createDeferred(source, options = {}) {
|
|
428
|
+
const equals = options.equals ?? Object.is;
|
|
429
|
+
const [deferred, setDeferred] = createSignal(source());
|
|
430
|
+
createEffect(() => {
|
|
431
|
+
const nextValue = source();
|
|
432
|
+
if (equals(deferred(), nextValue)) {
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
if (options.timeoutMs === undefined || options.timeoutMs <= 0) {
|
|
436
|
+
queueMicrotask(() => {
|
|
437
|
+
setDeferred(nextValue);
|
|
438
|
+
});
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
const timer = setTimeout(() => {
|
|
442
|
+
setDeferred(nextValue);
|
|
443
|
+
}, options.timeoutMs);
|
|
444
|
+
onCleanup(() => {
|
|
445
|
+
clearTimeout(timer);
|
|
446
|
+
});
|
|
447
|
+
});
|
|
448
|
+
return deferred;
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Creates a unique id string for the current scope.
|
|
452
|
+
*
|
|
453
|
+
* @param prefix Prefix for the generated id.
|
|
454
|
+
* @returns Unique id string.
|
|
455
|
+
*
|
|
456
|
+
* @example
|
|
457
|
+
* ```ts
|
|
458
|
+
* const inputId = createUniqueId("field-")
|
|
459
|
+
* ```
|
|
460
|
+
*/
|
|
461
|
+
export function createUniqueId(prefix = "uid-") {
|
|
462
|
+
return activeScope().nextUniqueId(prefix);
|
|
463
|
+
}
|
|
397
464
|
/**
|
|
398
465
|
* Alias for {@link createMemo}.
|
|
399
466
|
*
|
|
@@ -517,7 +584,7 @@ export function onMount(callback) {
|
|
|
517
584
|
*/
|
|
518
585
|
export const mount = onMount;
|
|
519
586
|
/**
|
|
520
|
-
* Registers cleanup in setup scope or
|
|
587
|
+
* Registers cleanup in the current effect, active setup scope, or default global scope.
|
|
521
588
|
*
|
|
522
589
|
* @param cleanup Cleanup callback invoked on re-run or scope disposal.
|
|
523
590
|
*
|
|
@@ -534,12 +601,7 @@ export function onCleanup(cleanup) {
|
|
|
534
601
|
activeEffect.registerCleanup(cleanup);
|
|
535
602
|
return;
|
|
536
603
|
}
|
|
537
|
-
|
|
538
|
-
if (scope) {
|
|
539
|
-
scope.registerCleanup(cleanup);
|
|
540
|
-
return;
|
|
541
|
-
}
|
|
542
|
-
throw new Error("onCleanup must run inside component setup or an effect.");
|
|
604
|
+
activeScope().registerCleanup(cleanup);
|
|
543
605
|
}
|
|
544
606
|
/**
|
|
545
607
|
* Alias for {@link onCleanup}.
|
|
@@ -550,6 +612,32 @@ export function onCleanup(cleanup) {
|
|
|
550
612
|
* ```
|
|
551
613
|
*/
|
|
552
614
|
export const cleanup = onCleanup;
|
|
615
|
+
/**
|
|
616
|
+
* Creates an isolated reactive scope and returns a disposal handle.
|
|
617
|
+
*
|
|
618
|
+
* @param init Initializer executed inside the new scope.
|
|
619
|
+
* @returns Return value of `init`.
|
|
620
|
+
*
|
|
621
|
+
* @example
|
|
622
|
+
* ```ts
|
|
623
|
+
* const value = createRoot((dispose) => {
|
|
624
|
+
* const [count, setCount] = createSignal(0)
|
|
625
|
+
* return { count, setCount, dispose }
|
|
626
|
+
* })
|
|
627
|
+
* ```
|
|
628
|
+
*/
|
|
629
|
+
export function createRoot(init) {
|
|
630
|
+
const scope = new Scope({ autoStart: true });
|
|
631
|
+
let disposed = false;
|
|
632
|
+
const dispose = () => {
|
|
633
|
+
if (disposed) {
|
|
634
|
+
return;
|
|
635
|
+
}
|
|
636
|
+
disposed = true;
|
|
637
|
+
scope.dispose();
|
|
638
|
+
};
|
|
639
|
+
return withScope(scope, () => init(dispose));
|
|
640
|
+
}
|
|
553
641
|
/**
|
|
554
642
|
* Batches reactive notifications and flushes once at the end.
|
|
555
643
|
*
|
|
@@ -576,6 +664,28 @@ export function batch(fn) {
|
|
|
576
664
|
}
|
|
577
665
|
}
|
|
578
666
|
}
|
|
667
|
+
export function on(deps, fn, options = {}) {
|
|
668
|
+
let initialized = false;
|
|
669
|
+
let previousInput;
|
|
670
|
+
const readInput = () => {
|
|
671
|
+
if (Array.isArray(deps)) {
|
|
672
|
+
return deps.map((dep) => dep());
|
|
673
|
+
}
|
|
674
|
+
return deps();
|
|
675
|
+
};
|
|
676
|
+
return () => {
|
|
677
|
+
const input = readInput();
|
|
678
|
+
if (!initialized) {
|
|
679
|
+
initialized = true;
|
|
680
|
+
if (options.defer) {
|
|
681
|
+
previousInput = input;
|
|
682
|
+
return;
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
fn(input, previousInput, undefined);
|
|
686
|
+
previousInput = input;
|
|
687
|
+
};
|
|
688
|
+
}
|
|
579
689
|
/**
|
|
580
690
|
* Executes a function without dependency tracking.
|
|
581
691
|
*
|
|
@@ -598,6 +708,54 @@ export function untrack(fn) {
|
|
|
598
708
|
}
|
|
599
709
|
}
|
|
600
710
|
}
|
|
711
|
+
/**
|
|
712
|
+
* Creates a manually armed reaction.
|
|
713
|
+
*
|
|
714
|
+
* The returned `track` function subscribes to dependencies read inside `trackFn`.
|
|
715
|
+
* When any dependency changes, `onInvalidate` runs once and the reaction disarms
|
|
716
|
+
* until `track(...)` is called again.
|
|
717
|
+
*
|
|
718
|
+
* @param onInvalidate Callback invoked when tracked dependencies change.
|
|
719
|
+
* @returns Track function used to arm the reaction.
|
|
720
|
+
*
|
|
721
|
+
* @example
|
|
722
|
+
* ```ts
|
|
723
|
+
* const track = createReaction(() => console.log("changed"))
|
|
724
|
+
* track(() => state.userId)
|
|
725
|
+
* ```
|
|
726
|
+
*/
|
|
727
|
+
export function createReaction(onInvalidate) {
|
|
728
|
+
const scope = activeScope();
|
|
729
|
+
let tracker = null;
|
|
730
|
+
let armed = false;
|
|
731
|
+
const disposeTracker = () => {
|
|
732
|
+
if (!tracker) {
|
|
733
|
+
return;
|
|
734
|
+
}
|
|
735
|
+
tracker.dispose();
|
|
736
|
+
tracker = null;
|
|
737
|
+
};
|
|
738
|
+
const track = (trackFn) => {
|
|
739
|
+
armed = true;
|
|
740
|
+
disposeTracker();
|
|
741
|
+
tracker = new DependencyTracker(() => {
|
|
742
|
+
if (!armed) {
|
|
743
|
+
return;
|
|
744
|
+
}
|
|
745
|
+
armed = false;
|
|
746
|
+
disposeTracker();
|
|
747
|
+
onInvalidate();
|
|
748
|
+
});
|
|
749
|
+
tracker.collect(trackFn);
|
|
750
|
+
};
|
|
751
|
+
scope.register({
|
|
752
|
+
dispose: () => {
|
|
753
|
+
armed = false;
|
|
754
|
+
disposeTracker();
|
|
755
|
+
},
|
|
756
|
+
});
|
|
757
|
+
return track;
|
|
758
|
+
}
|
|
601
759
|
function resolveResourceArgs(sourceOrFetcher, maybeFetcher, maybeOptions) {
|
|
602
760
|
if (maybeFetcher) {
|
|
603
761
|
return {
|
|
@@ -775,6 +933,65 @@ function shallowClone(value) {
|
|
|
775
933
|
}
|
|
776
934
|
return value;
|
|
777
935
|
}
|
|
936
|
+
function deepClone(value) {
|
|
937
|
+
if (typeof globalThis.structuredClone === "function") {
|
|
938
|
+
return globalThis.structuredClone(value);
|
|
939
|
+
}
|
|
940
|
+
if (Array.isArray(value)) {
|
|
941
|
+
return value.map((item) => deepClone(item));
|
|
942
|
+
}
|
|
943
|
+
if (isObjectLike(value)) {
|
|
944
|
+
const clone = {};
|
|
945
|
+
for (const key of Reflect.ownKeys(value)) {
|
|
946
|
+
clone[key] = deepClone(value[key]);
|
|
947
|
+
}
|
|
948
|
+
return clone;
|
|
949
|
+
}
|
|
950
|
+
return value;
|
|
951
|
+
}
|
|
952
|
+
function reconcileValue(previous, next, options) {
|
|
953
|
+
if (Object.is(previous, next)) {
|
|
954
|
+
return previous;
|
|
955
|
+
}
|
|
956
|
+
if (Array.isArray(previous) && Array.isArray(next)) {
|
|
957
|
+
if (options.key) {
|
|
958
|
+
const keyField = options.key;
|
|
959
|
+
const keyed = new Map();
|
|
960
|
+
for (const item of previous) {
|
|
961
|
+
if (isObjectLike(item) && keyField in item) {
|
|
962
|
+
keyed.set(item[keyField], item);
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
return next.map((item) => {
|
|
966
|
+
if (!isObjectLike(item) || !(keyField in item)) {
|
|
967
|
+
return deepClone(item);
|
|
968
|
+
}
|
|
969
|
+
const keyValue = item[keyField];
|
|
970
|
+
const existing = keyed.get(keyValue);
|
|
971
|
+
if (existing && isObjectLike(existing)) {
|
|
972
|
+
return reconcileValue(existing, item, options);
|
|
973
|
+
}
|
|
974
|
+
return deepClone(item);
|
|
975
|
+
});
|
|
976
|
+
}
|
|
977
|
+
return next.map((item, index) => {
|
|
978
|
+
const previousItem = previous[index];
|
|
979
|
+
return reconcileValue(previousItem, item, options);
|
|
980
|
+
});
|
|
981
|
+
}
|
|
982
|
+
if (isObjectLike(previous) && isObjectLike(next)) {
|
|
983
|
+
const out = options.merge
|
|
984
|
+
? { ...previous }
|
|
985
|
+
: {};
|
|
986
|
+
for (const key of Reflect.ownKeys(next)) {
|
|
987
|
+
const previousValue = previous[key];
|
|
988
|
+
const nextValue = next[key];
|
|
989
|
+
out[key] = reconcileValue(previousValue, nextValue, options);
|
|
990
|
+
}
|
|
991
|
+
return out;
|
|
992
|
+
}
|
|
993
|
+
return deepClone(next);
|
|
994
|
+
}
|
|
778
995
|
function getAtPath(root, path) {
|
|
779
996
|
let cursor = root;
|
|
780
997
|
for (const segment of path) {
|
|
@@ -921,6 +1138,39 @@ function createReactiveProxy(source, mutable) {
|
|
|
921
1138
|
};
|
|
922
1139
|
return createAtPath([]);
|
|
923
1140
|
}
|
|
1141
|
+
/**
|
|
1142
|
+
* Produces immutable updates using a mutable draft callback.
|
|
1143
|
+
*
|
|
1144
|
+
* @param recipe Draft mutator callback.
|
|
1145
|
+
* @returns Updater function suitable for `setStore` or signal setters.
|
|
1146
|
+
*
|
|
1147
|
+
* @example
|
|
1148
|
+
* ```ts
|
|
1149
|
+
* setStore(produce((draft) => { draft.user.name = "Ada" }))
|
|
1150
|
+
* ```
|
|
1151
|
+
*/
|
|
1152
|
+
export function produce(recipe) {
|
|
1153
|
+
return (previous) => {
|
|
1154
|
+
const draft = deepClone(previous);
|
|
1155
|
+
recipe(draft);
|
|
1156
|
+
return draft;
|
|
1157
|
+
};
|
|
1158
|
+
}
|
|
1159
|
+
/**
|
|
1160
|
+
* Reconciles structural updates while preserving matching nested references.
|
|
1161
|
+
*
|
|
1162
|
+
* @param value Next value to reconcile into current state.
|
|
1163
|
+
* @param options Reconciliation behavior.
|
|
1164
|
+
* @returns Updater function suitable for `setStore` or signal setters.
|
|
1165
|
+
*
|
|
1166
|
+
* @example
|
|
1167
|
+
* ```ts
|
|
1168
|
+
* setStore(reconcile(nextData, { key: "id", merge: true }))
|
|
1169
|
+
* ```
|
|
1170
|
+
*/
|
|
1171
|
+
export function reconcile(value, options = {}) {
|
|
1172
|
+
return (previous) => reconcileValue(previous, value, options);
|
|
1173
|
+
}
|
|
924
1174
|
/**
|
|
925
1175
|
* Creates an immutable reactive object store.
|
|
926
1176
|
*
|
|
@@ -1315,6 +1565,161 @@ export function component(setup, options = {}) {
|
|
|
1315
1565
|
* ```
|
|
1316
1566
|
*/
|
|
1317
1567
|
export const defineComponent = component;
|
|
1568
|
+
/**
|
|
1569
|
+
* Merges multiple props objects with lazy property resolution.
|
|
1570
|
+
* Later sources take precedence.
|
|
1571
|
+
*
|
|
1572
|
+
* @param sources Props sources to merge.
|
|
1573
|
+
* @returns Merged props proxy.
|
|
1574
|
+
*
|
|
1575
|
+
* @example
|
|
1576
|
+
* ```ts
|
|
1577
|
+
* const props = mergeProps({ a: 1 }, defaults, incoming)
|
|
1578
|
+
* ```
|
|
1579
|
+
*/
|
|
1580
|
+
export function mergeProps(...sources) {
|
|
1581
|
+
const readSource = (index) => sources[index] ?? {};
|
|
1582
|
+
return new Proxy({}, {
|
|
1583
|
+
get(_target, prop) {
|
|
1584
|
+
for (let index = sources.length - 1; index >= 0; index -= 1) {
|
|
1585
|
+
const source = readSource(index);
|
|
1586
|
+
if (prop in source) {
|
|
1587
|
+
return source[prop];
|
|
1588
|
+
}
|
|
1589
|
+
}
|
|
1590
|
+
return undefined;
|
|
1591
|
+
},
|
|
1592
|
+
has(_target, prop) {
|
|
1593
|
+
for (let index = sources.length - 1; index >= 0; index -= 1) {
|
|
1594
|
+
const source = readSource(index);
|
|
1595
|
+
if (prop in source) {
|
|
1596
|
+
return true;
|
|
1597
|
+
}
|
|
1598
|
+
}
|
|
1599
|
+
return false;
|
|
1600
|
+
},
|
|
1601
|
+
ownKeys() {
|
|
1602
|
+
const keys = new Set();
|
|
1603
|
+
for (const source of sources) {
|
|
1604
|
+
for (const key of Reflect.ownKeys(source)) {
|
|
1605
|
+
keys.add(typeof key === "number" ? String(key) : key);
|
|
1606
|
+
}
|
|
1607
|
+
}
|
|
1608
|
+
return [...keys];
|
|
1609
|
+
},
|
|
1610
|
+
getOwnPropertyDescriptor(_target, prop) {
|
|
1611
|
+
return {
|
|
1612
|
+
configurable: true,
|
|
1613
|
+
enumerable: true,
|
|
1614
|
+
get() {
|
|
1615
|
+
for (let index = sources.length - 1; index >= 0; index -= 1) {
|
|
1616
|
+
const source = readSource(index);
|
|
1617
|
+
if (prop in source) {
|
|
1618
|
+
return source[prop];
|
|
1619
|
+
}
|
|
1620
|
+
}
|
|
1621
|
+
return undefined;
|
|
1622
|
+
},
|
|
1623
|
+
};
|
|
1624
|
+
},
|
|
1625
|
+
});
|
|
1626
|
+
}
|
|
1627
|
+
/**
|
|
1628
|
+
* Splits props into picked groups plus a remainder object.
|
|
1629
|
+
*
|
|
1630
|
+
* @param props Source props object.
|
|
1631
|
+
* @param groups Key groups to pick.
|
|
1632
|
+
* @returns Tuple of picked groups followed by remainder props.
|
|
1633
|
+
*
|
|
1634
|
+
* @example
|
|
1635
|
+
* ```ts
|
|
1636
|
+
* const [local, others] = splitProps(props, ["id", "name"])
|
|
1637
|
+
* ```
|
|
1638
|
+
*/
|
|
1639
|
+
export function splitProps(props, ...groups) {
|
|
1640
|
+
const picked = groups.map((group) => {
|
|
1641
|
+
const keySet = new Set(group);
|
|
1642
|
+
return new Proxy({}, {
|
|
1643
|
+
get(_target, prop) {
|
|
1644
|
+
if (!keySet.has(prop)) {
|
|
1645
|
+
return undefined;
|
|
1646
|
+
}
|
|
1647
|
+
return props[prop];
|
|
1648
|
+
},
|
|
1649
|
+
has(_target, prop) {
|
|
1650
|
+
return keySet.has(prop);
|
|
1651
|
+
},
|
|
1652
|
+
ownKeys() {
|
|
1653
|
+
return [...keySet].map((key) => (typeof key === "number" ? String(key) : key));
|
|
1654
|
+
},
|
|
1655
|
+
getOwnPropertyDescriptor(_target, prop) {
|
|
1656
|
+
if (!keySet.has(prop)) {
|
|
1657
|
+
return undefined;
|
|
1658
|
+
}
|
|
1659
|
+
return {
|
|
1660
|
+
configurable: true,
|
|
1661
|
+
enumerable: true,
|
|
1662
|
+
writable: false,
|
|
1663
|
+
value: props[prop],
|
|
1664
|
+
};
|
|
1665
|
+
},
|
|
1666
|
+
});
|
|
1667
|
+
});
|
|
1668
|
+
const blocked = new Set();
|
|
1669
|
+
for (const group of groups) {
|
|
1670
|
+
for (const key of group) {
|
|
1671
|
+
blocked.add(key);
|
|
1672
|
+
}
|
|
1673
|
+
}
|
|
1674
|
+
const rest = new Proxy({}, {
|
|
1675
|
+
get(_target, prop) {
|
|
1676
|
+
if (blocked.has(prop)) {
|
|
1677
|
+
return undefined;
|
|
1678
|
+
}
|
|
1679
|
+
return props[prop];
|
|
1680
|
+
},
|
|
1681
|
+
has(_target, prop) {
|
|
1682
|
+
return !blocked.has(prop) && prop in props;
|
|
1683
|
+
},
|
|
1684
|
+
ownKeys() {
|
|
1685
|
+
return Reflect.ownKeys(props)
|
|
1686
|
+
.filter((key) => !blocked.has(key))
|
|
1687
|
+
.map((key) => (typeof key === "number" ? String(key) : key));
|
|
1688
|
+
},
|
|
1689
|
+
getOwnPropertyDescriptor(_target, prop) {
|
|
1690
|
+
if (blocked.has(prop)) {
|
|
1691
|
+
return undefined;
|
|
1692
|
+
}
|
|
1693
|
+
const descriptor = Object.getOwnPropertyDescriptor(props, prop);
|
|
1694
|
+
if (!descriptor) {
|
|
1695
|
+
return undefined;
|
|
1696
|
+
}
|
|
1697
|
+
return {
|
|
1698
|
+
...descriptor,
|
|
1699
|
+
configurable: true,
|
|
1700
|
+
};
|
|
1701
|
+
},
|
|
1702
|
+
});
|
|
1703
|
+
return [...picked, rest];
|
|
1704
|
+
}
|
|
1705
|
+
/**
|
|
1706
|
+
* Resolves and memoizes children access.
|
|
1707
|
+
*
|
|
1708
|
+
* @param fn Accessor returning children nodes.
|
|
1709
|
+
* @returns Accessor with `toArray()` helper.
|
|
1710
|
+
*
|
|
1711
|
+
* @example
|
|
1712
|
+
* ```ts
|
|
1713
|
+
* const resolved = children(() => props().children)
|
|
1714
|
+
* const list = resolved.toArray()
|
|
1715
|
+
* ```
|
|
1716
|
+
*/
|
|
1717
|
+
export function children(fn) {
|
|
1718
|
+
const resolved = createMemo(() => fn());
|
|
1719
|
+
const accessor = (() => resolved());
|
|
1720
|
+
accessor.toArray = () => React.Children.toArray(resolved());
|
|
1721
|
+
return accessor;
|
|
1722
|
+
}
|
|
1318
1723
|
function readMaybeAccessor(value) {
|
|
1319
1724
|
return resolveMaybeAccessor(value);
|
|
1320
1725
|
}
|