jotai-solid-api 1.1.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 +9 -0
- package/dist/index.d.ts +143 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +371 -0
- 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,12 +14,16 @@ 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)`
|
|
23
29
|
- `createRoot(init)`
|
|
@@ -30,6 +36,8 @@ npm install jotai-solid-api jotai react
|
|
|
30
36
|
- `createAsync(compute)`
|
|
31
37
|
- `use(accessorOrPromise)`
|
|
32
38
|
- `createStore(initial)` / `setStore(next)`
|
|
39
|
+
- `produce(recipe)`
|
|
40
|
+
- `reconcile(value, options?)`
|
|
33
41
|
- `createMutable(initial)` / `createMutableStore(initial)`
|
|
34
42
|
- `createReactiveArray(initial)` / `createArrayStore(initial)`
|
|
35
43
|
- `createProjection(source, initialize, mutate)`
|
|
@@ -38,6 +46,7 @@ npm install jotai-solid-api jotai react
|
|
|
38
46
|
- `lazy(loader)` / `Suspense`
|
|
39
47
|
- `untrack(fn)`
|
|
40
48
|
- control flow: `Show`, `For`, `Index`, `Switch`, `Match`
|
|
49
|
+
- props helpers: `mergeProps`, `splitProps`, `children`
|
|
41
50
|
|
|
42
51
|
### Aliases
|
|
43
52
|
|
package/dist/index.d.ts
CHANGED
|
@@ -169,6 +169,34 @@ export declare const toSignal: typeof toSolidSignal;
|
|
|
169
169
|
* ```
|
|
170
170
|
*/
|
|
171
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;
|
|
172
200
|
/**
|
|
173
201
|
* Alias for {@link createMemo}.
|
|
174
202
|
*
|
|
@@ -321,6 +349,31 @@ export declare function createRoot<T>(init: (dispose: () => void) => T): T;
|
|
|
321
349
|
* ```
|
|
322
350
|
*/
|
|
323
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;
|
|
324
377
|
/**
|
|
325
378
|
* Executes a function without dependency tracking.
|
|
326
379
|
*
|
|
@@ -333,6 +386,23 @@ export declare function batch<T>(fn: () => T): T;
|
|
|
333
386
|
* ```
|
|
334
387
|
*/
|
|
335
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;
|
|
336
406
|
/**
|
|
337
407
|
* Creates an async resource from a fetcher.
|
|
338
408
|
*
|
|
@@ -425,6 +495,34 @@ export declare function use<T>(value: PromiseLike<T>): T;
|
|
|
425
495
|
* ```
|
|
426
496
|
*/
|
|
427
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;
|
|
428
526
|
/**
|
|
429
527
|
* Creates an immutable reactive object store.
|
|
430
528
|
*
|
|
@@ -703,6 +801,51 @@ export declare const defineComponent: typeof component;
|
|
|
703
801
|
* ```
|
|
704
802
|
*/
|
|
705
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
|
+
};
|
|
706
849
|
/**
|
|
707
850
|
* Props for {@link Show}.
|
|
708
851
|
*
|
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
|
@@ -80,9 +80,14 @@ class Scope {
|
|
|
80
80
|
this.scopeCleanups = new Set();
|
|
81
81
|
this.layoutStarters = [];
|
|
82
82
|
this.effectStarters = [];
|
|
83
|
+
this.uniqueIdCounter = 0;
|
|
83
84
|
this.layoutStarted = Boolean(options.autoStart);
|
|
84
85
|
this.effectsStarted = Boolean(options.autoStart);
|
|
85
86
|
}
|
|
87
|
+
nextUniqueId(prefix) {
|
|
88
|
+
this.uniqueIdCounter += 1;
|
|
89
|
+
return `${prefix}${this.uniqueIdCounter}`;
|
|
90
|
+
}
|
|
86
91
|
register(disposable) {
|
|
87
92
|
this.disposables.add(disposable);
|
|
88
93
|
}
|
|
@@ -407,6 +412,55 @@ export function createMemo(compute) {
|
|
|
407
412
|
scope.register(source);
|
|
408
413
|
return () => source.get();
|
|
409
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
|
+
}
|
|
410
464
|
/**
|
|
411
465
|
* Alias for {@link createMemo}.
|
|
412
466
|
*
|
|
@@ -610,6 +664,28 @@ export function batch(fn) {
|
|
|
610
664
|
}
|
|
611
665
|
}
|
|
612
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
|
+
}
|
|
613
689
|
/**
|
|
614
690
|
* Executes a function without dependency tracking.
|
|
615
691
|
*
|
|
@@ -632,6 +708,54 @@ export function untrack(fn) {
|
|
|
632
708
|
}
|
|
633
709
|
}
|
|
634
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
|
+
}
|
|
635
759
|
function resolveResourceArgs(sourceOrFetcher, maybeFetcher, maybeOptions) {
|
|
636
760
|
if (maybeFetcher) {
|
|
637
761
|
return {
|
|
@@ -809,6 +933,65 @@ function shallowClone(value) {
|
|
|
809
933
|
}
|
|
810
934
|
return value;
|
|
811
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
|
+
}
|
|
812
995
|
function getAtPath(root, path) {
|
|
813
996
|
let cursor = root;
|
|
814
997
|
for (const segment of path) {
|
|
@@ -955,6 +1138,39 @@ function createReactiveProxy(source, mutable) {
|
|
|
955
1138
|
};
|
|
956
1139
|
return createAtPath([]);
|
|
957
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
|
+
}
|
|
958
1174
|
/**
|
|
959
1175
|
* Creates an immutable reactive object store.
|
|
960
1176
|
*
|
|
@@ -1349,6 +1565,161 @@ export function component(setup, options = {}) {
|
|
|
1349
1565
|
* ```
|
|
1350
1566
|
*/
|
|
1351
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
|
+
}
|
|
1352
1723
|
function readMaybeAccessor(value) {
|
|
1353
1724
|
return resolveMaybeAccessor(value);
|
|
1354
1725
|
}
|