@solidjs/signals 0.10.8 → 0.11.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/dist/dev.js +92 -26
- package/dist/node.cjs +224 -161
- package/dist/prod.js +100 -37
- package/dist/types/core/core.d.ts +2 -2
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/types.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/store/index.d.ts +2 -0
- package/dist/types/store/storePath.d.ts +30 -0
- package/package.json +1 -1
package/dist/prod.js
CHANGED
|
@@ -701,9 +701,9 @@ function unlinkSubs(e) {
|
|
|
701
701
|
const t = e.V;
|
|
702
702
|
const n = e.D;
|
|
703
703
|
const i = e.p;
|
|
704
|
-
const r = e.
|
|
705
|
-
if (i !== null) i.
|
|
706
|
-
else t.
|
|
704
|
+
const r = e.Pe;
|
|
705
|
+
if (i !== null) i.Pe = r;
|
|
706
|
+
else t.ge = r;
|
|
707
707
|
if (r !== null) r.p = i;
|
|
708
708
|
else {
|
|
709
709
|
t.I = i;
|
|
@@ -735,9 +735,9 @@ function link(e, t) {
|
|
|
735
735
|
return;
|
|
736
736
|
}
|
|
737
737
|
}
|
|
738
|
-
const s = e.
|
|
738
|
+
const s = e.ge;
|
|
739
739
|
if (s !== null && s.h === t && (!r || isValidLink(s, t))) return;
|
|
740
|
-
const o = (t.ye = e.
|
|
740
|
+
const o = (t.ye = e.ge = { V: e, h: t, D: i, Pe: s, p: null });
|
|
741
741
|
if (n !== null) n.D = o;
|
|
742
742
|
else t.C = o;
|
|
743
743
|
if (s !== null) s.p = o;
|
|
@@ -780,7 +780,7 @@ function dispose(e) {
|
|
|
780
780
|
function disposeChildren(e, t = false, n) {
|
|
781
781
|
if (e.O & REACTIVE_DISPOSED) return;
|
|
782
782
|
if (t) e.O = REACTIVE_DISPOSED;
|
|
783
|
-
let i = n ? e.
|
|
783
|
+
let i = n ? e.be : e.De;
|
|
784
784
|
while (i) {
|
|
785
785
|
const e = i.ve;
|
|
786
786
|
if (i.C) {
|
|
@@ -797,16 +797,16 @@ function disposeChildren(e, t = false, n) {
|
|
|
797
797
|
i = e;
|
|
798
798
|
}
|
|
799
799
|
if (n) {
|
|
800
|
-
e.
|
|
800
|
+
e.be = null;
|
|
801
801
|
} else {
|
|
802
802
|
e.De = null;
|
|
803
803
|
e.ve = null;
|
|
804
|
-
e.
|
|
804
|
+
e.we = 0;
|
|
805
805
|
}
|
|
806
806
|
runDisposal(e, n);
|
|
807
807
|
}
|
|
808
808
|
function runDisposal(e, t) {
|
|
809
|
-
let n = t ? e.
|
|
809
|
+
let n = t ? e.Ve : e.me;
|
|
810
810
|
if (!n) return;
|
|
811
811
|
if (Array.isArray(n)) {
|
|
812
812
|
for (let e = 0; e < n.length; e++) {
|
|
@@ -816,12 +816,12 @@ function runDisposal(e, t) {
|
|
|
816
816
|
} else {
|
|
817
817
|
n.call(n);
|
|
818
818
|
}
|
|
819
|
-
t ? (e.
|
|
819
|
+
t ? (e.Ve = null) : (e.me = null);
|
|
820
820
|
}
|
|
821
821
|
function childId(e, t) {
|
|
822
822
|
let n = e;
|
|
823
823
|
while (n.Le && n.i) n = n.i;
|
|
824
|
-
if (n.id != null) return formatId(n.id, t ? n.
|
|
824
|
+
if (n.id != null) return formatId(n.id, t ? n.we++ : n.we);
|
|
825
825
|
throw new Error("Cannot get child id from owner without an id");
|
|
826
826
|
}
|
|
827
827
|
function getNextChildId(e) {
|
|
@@ -836,7 +836,7 @@ function formatId(e, t) {
|
|
|
836
836
|
return e + (i ? String.fromCharCode(64 + i) : "") + n;
|
|
837
837
|
}
|
|
838
838
|
function getObserver() {
|
|
839
|
-
if (pendingCheckActive ||
|
|
839
|
+
if (pendingCheckActive || latestReadActive) return PENDING_OWNER;
|
|
840
840
|
return tracking ? context : null;
|
|
841
841
|
}
|
|
842
842
|
function getOwner() {
|
|
@@ -865,9 +865,9 @@ function createOwner(e) {
|
|
|
865
865
|
me: null,
|
|
866
866
|
ce: t?.ce ?? globalQueue,
|
|
867
867
|
ke: t?.ke || defaultContext,
|
|
868
|
-
|
|
868
|
+
we: 0,
|
|
869
|
+
Ve: null,
|
|
869
870
|
be: null,
|
|
870
|
-
we: null,
|
|
871
871
|
i: t,
|
|
872
872
|
dispose(e = true) {
|
|
873
873
|
disposeChildren(i, e);
|
|
@@ -959,7 +959,7 @@ function trackedEffect(e, t) {
|
|
|
959
959
|
}
|
|
960
960
|
},
|
|
961
961
|
undefined,
|
|
962
|
-
{ ...t, lazy: true
|
|
962
|
+
{ ...t, lazy: true }
|
|
963
963
|
);
|
|
964
964
|
n.xe = undefined;
|
|
965
965
|
n.ue = true;
|
|
@@ -975,7 +975,7 @@ let stale = false;
|
|
|
975
975
|
let refreshing = false;
|
|
976
976
|
let pendingCheckActive = false;
|
|
977
977
|
let foundPending = false;
|
|
978
|
-
let
|
|
978
|
+
let latestReadActive = false;
|
|
979
979
|
let context = null;
|
|
980
980
|
let currentOptimisticLane = null;
|
|
981
981
|
let snapshotCaptureActive = false;
|
|
@@ -1039,11 +1039,11 @@ function recompute(e, t = false) {
|
|
|
1039
1039
|
if (e.ne || n === EFFECT_TRACKED) disposeChildren(e);
|
|
1040
1040
|
else {
|
|
1041
1041
|
markDisposal(e);
|
|
1042
|
-
e.
|
|
1043
|
-
e.
|
|
1042
|
+
e.Ve = e.me;
|
|
1043
|
+
e.be = e.De;
|
|
1044
1044
|
e.me = null;
|
|
1045
1045
|
e.De = null;
|
|
1046
|
-
e.
|
|
1046
|
+
e.we = 0;
|
|
1047
1047
|
}
|
|
1048
1048
|
}
|
|
1049
1049
|
const i = !!(e.O & REACTIVE_OPTIMISTIC_DIRTY);
|
|
@@ -1157,7 +1157,7 @@ function computed(e, t, n) {
|
|
|
1157
1157
|
me: null,
|
|
1158
1158
|
ce: context?.ce ?? globalQueue,
|
|
1159
1159
|
ke: context?.ke ?? defaultContext,
|
|
1160
|
-
|
|
1160
|
+
we: 0,
|
|
1161
1161
|
L: e,
|
|
1162
1162
|
fe: t,
|
|
1163
1163
|
o: 0,
|
|
@@ -1167,7 +1167,7 @@ function computed(e, t, n) {
|
|
|
1167
1167
|
C: null,
|
|
1168
1168
|
ye: null,
|
|
1169
1169
|
I: null,
|
|
1170
|
-
|
|
1170
|
+
ge: null,
|
|
1171
1171
|
i: context,
|
|
1172
1172
|
ve: null,
|
|
1173
1173
|
De: null,
|
|
@@ -1175,8 +1175,8 @@ function computed(e, t, n) {
|
|
|
1175
1175
|
Ee: STATUS_UNINITIALIZED,
|
|
1176
1176
|
J: clock,
|
|
1177
1177
|
ae: NOT_PENDING,
|
|
1178
|
+
Ve: null,
|
|
1178
1179
|
be: null,
|
|
1179
|
-
we: null,
|
|
1180
1180
|
Ie: null,
|
|
1181
1181
|
ne: null
|
|
1182
1182
|
};
|
|
@@ -1209,7 +1209,7 @@ function signal(e, t, n = null) {
|
|
|
1209
1209
|
Ne: t?.unobserved,
|
|
1210
1210
|
fe: e,
|
|
1211
1211
|
I: null,
|
|
1212
|
-
|
|
1212
|
+
ge: null,
|
|
1213
1213
|
J: clock,
|
|
1214
1214
|
m: n,
|
|
1215
1215
|
P: n?.A || null,
|
|
@@ -1251,10 +1251,10 @@ function untrack(e) {
|
|
|
1251
1251
|
}
|
|
1252
1252
|
}
|
|
1253
1253
|
function read(e) {
|
|
1254
|
-
if (
|
|
1255
|
-
const t =
|
|
1256
|
-
const n =
|
|
1257
|
-
|
|
1254
|
+
if (latestReadActive) {
|
|
1255
|
+
const t = getLatestValueComputed(e);
|
|
1256
|
+
const n = latestReadActive;
|
|
1257
|
+
latestReadActive = false;
|
|
1258
1258
|
let i;
|
|
1259
1259
|
try {
|
|
1260
1260
|
i = read(t);
|
|
@@ -1262,7 +1262,7 @@ function read(e) {
|
|
|
1262
1262
|
if (!context && t instanceof NotReadyError) return e.fe;
|
|
1263
1263
|
throw t;
|
|
1264
1264
|
} finally {
|
|
1265
|
-
|
|
1265
|
+
latestReadActive = n;
|
|
1266
1266
|
}
|
|
1267
1267
|
if (t.Ee & STATUS_PENDING) return e.fe;
|
|
1268
1268
|
if (stale && currentOptimisticLane && t.ie) {
|
|
@@ -1439,10 +1439,10 @@ function updatePendingSignal(e) {
|
|
|
1439
1439
|
}
|
|
1440
1440
|
}
|
|
1441
1441
|
}
|
|
1442
|
-
function
|
|
1442
|
+
function getLatestValueComputed(e) {
|
|
1443
1443
|
if (!e.he) {
|
|
1444
|
-
const t =
|
|
1445
|
-
|
|
1444
|
+
const t = latestReadActive;
|
|
1445
|
+
latestReadActive = false;
|
|
1446
1446
|
const n = pendingCheckActive;
|
|
1447
1447
|
pendingCheckActive = false;
|
|
1448
1448
|
const i = context;
|
|
@@ -1451,7 +1451,7 @@ function getPendingValueComputed(e) {
|
|
|
1451
1451
|
e.he.de = e;
|
|
1452
1452
|
context = i;
|
|
1453
1453
|
pendingCheckActive = n;
|
|
1454
|
-
|
|
1454
|
+
latestReadActive = t;
|
|
1455
1455
|
}
|
|
1456
1456
|
return e.he;
|
|
1457
1457
|
}
|
|
@@ -1464,13 +1464,13 @@ function staleValues(e, t = true) {
|
|
|
1464
1464
|
stale = n;
|
|
1465
1465
|
}
|
|
1466
1466
|
}
|
|
1467
|
-
function
|
|
1468
|
-
const t =
|
|
1469
|
-
|
|
1467
|
+
function latest(e) {
|
|
1468
|
+
const t = latestReadActive;
|
|
1469
|
+
latestReadActive = true;
|
|
1470
1470
|
try {
|
|
1471
1471
|
return e();
|
|
1472
1472
|
} finally {
|
|
1473
|
-
|
|
1473
|
+
latestReadActive = t;
|
|
1474
1474
|
}
|
|
1475
1475
|
}
|
|
1476
1476
|
function isPending(e) {
|
|
@@ -2298,6 +2298,68 @@ function createOptimisticProjectionInternal(e, t = {}, n) {
|
|
|
2298
2298
|
}
|
|
2299
2299
|
return { store: s, node: i };
|
|
2300
2300
|
}
|
|
2301
|
+
const DELETE = Symbol(0);
|
|
2302
|
+
function updatePath(e, t, n = 0) {
|
|
2303
|
+
let i,
|
|
2304
|
+
r = e;
|
|
2305
|
+
if (n < t.length - 1) {
|
|
2306
|
+
i = t[n];
|
|
2307
|
+
const s = typeof i;
|
|
2308
|
+
const o = Array.isArray(e);
|
|
2309
|
+
if (Array.isArray(i)) {
|
|
2310
|
+
for (let r = 0; r < i.length; r++) {
|
|
2311
|
+
t[n] = i[r];
|
|
2312
|
+
updatePath(e, t, n);
|
|
2313
|
+
}
|
|
2314
|
+
t[n] = i;
|
|
2315
|
+
return;
|
|
2316
|
+
} else if (o && s === "function") {
|
|
2317
|
+
for (let r = 0; r < e.length; r++) {
|
|
2318
|
+
if (i(e[r], r)) {
|
|
2319
|
+
t[n] = r;
|
|
2320
|
+
updatePath(e, t, n);
|
|
2321
|
+
}
|
|
2322
|
+
}
|
|
2323
|
+
t[n] = i;
|
|
2324
|
+
return;
|
|
2325
|
+
} else if (o && s === "object") {
|
|
2326
|
+
const { from: r = 0, to: s = e.length - 1, by: o = 1 } = i;
|
|
2327
|
+
for (let i = r; i <= s; i += o) {
|
|
2328
|
+
t[n] = i;
|
|
2329
|
+
updatePath(e, t, n);
|
|
2330
|
+
}
|
|
2331
|
+
t[n] = i;
|
|
2332
|
+
return;
|
|
2333
|
+
} else if (n < t.length - 2) {
|
|
2334
|
+
updatePath(e[i], t, n + 1);
|
|
2335
|
+
return;
|
|
2336
|
+
}
|
|
2337
|
+
r = e[i];
|
|
2338
|
+
}
|
|
2339
|
+
let s = t[t.length - 1];
|
|
2340
|
+
if (typeof s === "function") {
|
|
2341
|
+
s = s(r);
|
|
2342
|
+
if (s === r) return;
|
|
2343
|
+
}
|
|
2344
|
+
if (i === undefined && s == undefined) return;
|
|
2345
|
+
if (s === DELETE) {
|
|
2346
|
+
delete e[i];
|
|
2347
|
+
} else if (i === undefined || (isWrappable(r) && isWrappable(s) && !Array.isArray(s))) {
|
|
2348
|
+
const t = i !== undefined ? e[i] : e;
|
|
2349
|
+
const n = Object.keys(s);
|
|
2350
|
+
for (let e = 0; e < n.length; e++) t[n[e]] = s[n[e]];
|
|
2351
|
+
} else {
|
|
2352
|
+
e[i] = s;
|
|
2353
|
+
}
|
|
2354
|
+
}
|
|
2355
|
+
const storePath = Object.assign(
|
|
2356
|
+
function storePath(...e) {
|
|
2357
|
+
return t => {
|
|
2358
|
+
updatePath(t, e);
|
|
2359
|
+
};
|
|
2360
|
+
},
|
|
2361
|
+
{ DELETE: DELETE }
|
|
2362
|
+
);
|
|
2301
2363
|
function snapshot(e, t, n) {
|
|
2302
2364
|
let i, r, s, o, u, c;
|
|
2303
2365
|
if (!isWrappable(e)) return e;
|
|
@@ -2851,6 +2913,7 @@ export {
|
|
|
2851
2913
|
isPending,
|
|
2852
2914
|
isRefreshing,
|
|
2853
2915
|
isWrappable,
|
|
2916
|
+
latest,
|
|
2854
2917
|
mapArray,
|
|
2855
2918
|
markSnapshotScope,
|
|
2856
2919
|
merge,
|
|
@@ -2858,7 +2921,6 @@ export {
|
|
|
2858
2921
|
onCleanup,
|
|
2859
2922
|
onSettled,
|
|
2860
2923
|
peekNextChildId,
|
|
2861
|
-
pending,
|
|
2862
2924
|
reconcile,
|
|
2863
2925
|
refresh,
|
|
2864
2926
|
releaseSnapshotScope,
|
|
@@ -2869,5 +2931,6 @@ export {
|
|
|
2869
2931
|
setSnapshotCapture,
|
|
2870
2932
|
setStrictRead,
|
|
2871
2933
|
snapshot,
|
|
2934
|
+
storePath,
|
|
2872
2935
|
untrack
|
|
2873
2936
|
};
|
|
@@ -6,7 +6,7 @@ export declare let stale: boolean;
|
|
|
6
6
|
export declare let refreshing: boolean;
|
|
7
7
|
export declare let pendingCheckActive: boolean;
|
|
8
8
|
export declare let foundPending: boolean;
|
|
9
|
-
export declare let
|
|
9
|
+
export declare let latestReadActive: boolean;
|
|
10
10
|
export declare let context: Owner | null;
|
|
11
11
|
export declare let currentOptimisticLane: OptimisticLane | null;
|
|
12
12
|
export declare let snapshotCaptureActive: boolean;
|
|
@@ -40,7 +40,7 @@ export declare function runWithOwner<T>(owner: Owner | null, fn: () => T): T;
|
|
|
40
40
|
*/
|
|
41
41
|
export declare function updatePendingSignal(el: Signal<any> | Computed<any>): void;
|
|
42
42
|
export declare function staleValues<T>(fn: () => T, set?: boolean): T;
|
|
43
|
-
export declare function
|
|
43
|
+
export declare function latest<T>(fn: () => T): T;
|
|
44
44
|
export declare function isPending(fn: () => any): boolean;
|
|
45
45
|
export declare function refresh<T>(fn: (() => T) | (T & {
|
|
46
46
|
[$REFRESH]: any;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { ContextNotFoundError, NoOwnerError, NotReadyError } from "./error.js";
|
|
2
|
-
export { isEqual, untrack, runWithOwner, computed, signal, read, setSignal, optimisticSignal, optimisticComputed, isPending,
|
|
2
|
+
export { isEqual, untrack, runWithOwner, computed, signal, read, setSignal, optimisticSignal, optimisticComputed, isPending, latest, refresh, isRefreshing, staleValues, setSnapshotCapture, markSnapshotScope, releaseSnapshotScope, clearSnapshots, setStrictRead } from "./core.js";
|
|
3
3
|
export { createOwner, createRoot, dispose, getNextChildId, getObserver, getOwner, isDisposed, onCleanup, peekNextChildId } from "./owner.js";
|
|
4
4
|
export { createContext, getContext, setContext, type Context, type ContextRecord } from "./context.js";
|
|
5
5
|
export { handleAsync } from "./async.js";
|
|
@@ -35,7 +35,7 @@ export interface RawSignal<T> {
|
|
|
35
35
|
_optimistic?: boolean;
|
|
36
36
|
_optimisticLane?: OptimisticLane;
|
|
37
37
|
_pendingSignal?: Signal<boolean>;
|
|
38
|
-
|
|
38
|
+
_latestValueComputed?: Computed<T>;
|
|
39
39
|
_parentSource?: Signal<any> | Computed<any>;
|
|
40
40
|
}
|
|
41
41
|
export interface FirewallSignal<T> extends RawSignal<T> {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ContextNotFoundError, NoOwnerError, NotReadyError, action, createContext, createOwner, createRoot, runWithOwner, flush, getNextChildId, peekNextChildId, getContext, setContext, getOwner, onCleanup, isDisposed, getObserver, isEqual, untrack, isPending,
|
|
1
|
+
export { ContextNotFoundError, NoOwnerError, NotReadyError, action, createContext, createOwner, createRoot, runWithOwner, flush, getNextChildId, peekNextChildId, getContext, setContext, getOwner, onCleanup, isDisposed, getObserver, isEqual, untrack, isPending, latest, isRefreshing, refresh, SUPPORTS_PROXY, setSnapshotCapture, markSnapshotScope, releaseSnapshotScope, clearSnapshots, setStrictRead } from "./core/index.js";
|
|
2
2
|
export type { Owner, Context, ContextRecord, IQueue } from "./core/index.js";
|
|
3
3
|
export * from "./signals.js";
|
|
4
4
|
export { mapArray, repeat, type Maybe } from "./map.js";
|
|
@@ -4,4 +4,6 @@ export { isWrappable, createStore, deep, $TRACK, $PROXY, $TARGET } from "./store
|
|
|
4
4
|
export { createProjection } from "./projection.js";
|
|
5
5
|
export { createOptimisticStore } from "./optimistic.js";
|
|
6
6
|
export { reconcile } from "./reconcile.js";
|
|
7
|
+
export { storePath } from "./storePath.js";
|
|
8
|
+
export type { PathSetter, Part, StorePathRange, ArrayFilterFn, CustomPartial } from "./storePath.js";
|
|
7
9
|
export { snapshot, merge, omit } from "./utils.js";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type NotWrappable } from "./store.js";
|
|
2
|
+
type W<T> = Exclude<T, NotWrappable>;
|
|
3
|
+
type KeyOf<T> = number extends keyof T ? 0 extends 1 & T ? keyof T : [T] extends [never] ? never : [T] extends [readonly unknown[]] ? number : keyof T : keyof T;
|
|
4
|
+
export type CustomPartial<T> = T extends readonly unknown[] ? "0" extends keyof T ? {
|
|
5
|
+
[K in Extract<keyof T, `${number}`>]?: T[K];
|
|
6
|
+
} : {
|
|
7
|
+
[x: number]: T[number];
|
|
8
|
+
} : Partial<T>;
|
|
9
|
+
export type StorePathRange = {
|
|
10
|
+
from?: number;
|
|
11
|
+
to?: number;
|
|
12
|
+
by?: number;
|
|
13
|
+
};
|
|
14
|
+
export type ArrayFilterFn<T> = (item: T, index: number) => boolean;
|
|
15
|
+
export type PathSetter<T> = T | CustomPartial<T> | ((prev: T) => T | CustomPartial<T>) | typeof DELETE;
|
|
16
|
+
export type Part<T, K extends KeyOf<T> = KeyOf<T>> = K | ([K] extends [never] ? never : readonly K[]) | ([T] extends [readonly unknown[]] ? ArrayFilterFn<T[number]> | StorePathRange : never);
|
|
17
|
+
declare const DELETE: unique symbol;
|
|
18
|
+
export interface storePath {
|
|
19
|
+
DELETE: typeof DELETE;
|
|
20
|
+
<T, K1 extends KeyOf<W<T>>, K2 extends KeyOf<W<W<T>[K1]>>, K3 extends KeyOf<W<W<W<T>[K1]>[K2]>>, K4 extends KeyOf<W<W<W<W<T>[K1]>[K2]>[K3]>>, K5 extends KeyOf<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>>, K6 extends KeyOf<W<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>[K5]>>, K7 extends KeyOf<W<W<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>[K5]>[K6]>>>(k1: Part<W<T>, K1>, k2: Part<W<W<T>[K1]>, K2>, k3: Part<W<W<W<T>[K1]>[K2]>, K3>, k4: Part<W<W<W<W<T>[K1]>[K2]>[K3]>, K4>, k5: Part<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>, K5>, k6: Part<W<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>[K5]>, K6>, k7: Part<W<W<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>[K5]>[K6]>, K7>, setter: PathSetter<W<W<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>[K5]>[K6]>[K7]>): (state: T) => void;
|
|
21
|
+
<T, K1 extends KeyOf<W<T>>, K2 extends KeyOf<W<W<T>[K1]>>, K3 extends KeyOf<W<W<W<T>[K1]>[K2]>>, K4 extends KeyOf<W<W<W<W<T>[K1]>[K2]>[K3]>>, K5 extends KeyOf<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>>, K6 extends KeyOf<W<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>[K5]>>>(k1: Part<W<T>, K1>, k2: Part<W<W<T>[K1]>, K2>, k3: Part<W<W<W<T>[K1]>[K2]>, K3>, k4: Part<W<W<W<W<T>[K1]>[K2]>[K3]>, K4>, k5: Part<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>, K5>, k6: Part<W<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>[K5]>, K6>, setter: PathSetter<W<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>[K5]>[K6]>): (state: T) => void;
|
|
22
|
+
<T, K1 extends KeyOf<W<T>>, K2 extends KeyOf<W<W<T>[K1]>>, K3 extends KeyOf<W<W<W<T>[K1]>[K2]>>, K4 extends KeyOf<W<W<W<W<T>[K1]>[K2]>[K3]>>, K5 extends KeyOf<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>>>(k1: Part<W<T>, K1>, k2: Part<W<W<T>[K1]>, K2>, k3: Part<W<W<W<T>[K1]>[K2]>, K3>, k4: Part<W<W<W<W<T>[K1]>[K2]>[K3]>, K4>, k5: Part<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>, K5>, setter: PathSetter<W<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>[K5]>): (state: T) => void;
|
|
23
|
+
<T, K1 extends KeyOf<W<T>>, K2 extends KeyOf<W<W<T>[K1]>>, K3 extends KeyOf<W<W<W<T>[K1]>[K2]>>, K4 extends KeyOf<W<W<W<W<T>[K1]>[K2]>[K3]>>>(k1: Part<W<T>, K1>, k2: Part<W<W<T>[K1]>, K2>, k3: Part<W<W<W<T>[K1]>[K2]>, K3>, k4: Part<W<W<W<W<T>[K1]>[K2]>[K3]>, K4>, setter: PathSetter<W<W<W<W<T>[K1]>[K2]>[K3]>[K4]>): (state: T) => void;
|
|
24
|
+
<T, K1 extends KeyOf<W<T>>, K2 extends KeyOf<W<W<T>[K1]>>, K3 extends KeyOf<W<W<W<T>[K1]>[K2]>>>(k1: Part<W<T>, K1>, k2: Part<W<W<T>[K1]>, K2>, k3: Part<W<W<W<T>[K1]>[K2]>, K3>, setter: PathSetter<W<W<W<T>[K1]>[K2]>[K3]>): (state: T) => void;
|
|
25
|
+
<T, K1 extends KeyOf<W<T>>, K2 extends KeyOf<W<W<T>[K1]>>>(k1: Part<W<T>, K1>, k2: Part<W<W<T>[K1]>, K2>, setter: PathSetter<W<W<T>[K1]>[K2]>): (state: T) => void;
|
|
26
|
+
<T, K1 extends KeyOf<W<T>>>(k1: Part<W<T>, K1>, setter: PathSetter<W<T>[K1]>): (state: T) => void;
|
|
27
|
+
<T>(setter: PathSetter<T>): (state: T) => void;
|
|
28
|
+
}
|
|
29
|
+
export declare const storePath: storePath;
|
|
30
|
+
export {};
|