cross-state 0.16.3 → 0.16.4
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/types/lib/path.d.ts +8 -2
- package/package.json +1 -1
package/dist/types/lib/path.d.ts
CHANGED
|
@@ -9,13 +9,19 @@ export type PathAsString<T, Optional extends boolean = false, MaxDepth extends n
|
|
|
9
9
|
export type Path<T, Optional extends boolean = false, MaxDepth extends number = 5> = PathAsString<T, Optional, MaxDepth> | PathAsArray<T, Optional, MaxDepth>;
|
|
10
10
|
export type Value<T, P> = P extends readonly [] ? T : true extends IsAny<T> | IsAny<P> ? any : true extends IsNever<T> | IsNever<P> ? never : P extends string ? Value<T, StringToArrayPath<P>> : P extends readonly [infer First extends KeyType, ...infer Rest extends readonly KeyType[]] ? T extends Map<any, infer V> | Set<infer V> ? Value<V, Rest> | undefined : T extends Array_ ? any[] extends T ? Value<T[First & keyof T], Rest> | undefined : Value<T[First & keyof T], Rest> : T extends Object_ ? Record<any, any> extends T ? Value<T[First], Rest> | undefined : Value<T[First], Rest> : never : never;
|
|
11
11
|
export type _WildcardPathAsArray<T, MaxDepth, Depth extends 1[]> = [] | (0 extends 1 & T ? KeyType[] : T extends never ? never : T extends Object_ ? Depth['length'] extends MaxDepth ? string[] : T extends Map<infer K extends KeyType, infer V> ? ['*'] | [K] | [K, ..._WildcardPathAsArray<V, MaxDepth, [...Depth, 1]>] : T extends Set<any> ? ['*'] | [number] : {
|
|
12
|
-
[K in GetKeys<T>]: ['*'] | [
|
|
12
|
+
[K in GetKeys<T>]: ['*'] | [
|
|
13
|
+
'*',
|
|
14
|
+
..._WildcardPathAsArray<T[T extends readonly any[] ? number : keyof T], MaxDepth, [
|
|
15
|
+
...Depth,
|
|
16
|
+
1
|
|
17
|
+
]>
|
|
18
|
+
] | [K] | [K, ..._WildcardPathAsArray<T[K], MaxDepth, [...Depth, 1]>];
|
|
13
19
|
}[GetKeys<T>] : never);
|
|
14
20
|
export type WildcardPathAsArray<T, MaxDepth extends number = 5> = _WildcardPathAsArray<T, MaxDepth, [
|
|
15
21
|
]>;
|
|
16
22
|
export type WildcardPathAsString<T, MaxDepth extends number = 5> = ArrayToStringPath<_WildcardPathAsArray<T, MaxDepth, []>>;
|
|
17
23
|
export type WildcardPath<T, MaxDepth extends number = 5> = WildcardPathAsString<T, MaxDepth> | WildcardPathAsArray<T, MaxDepth>;
|
|
18
|
-
export type WildcardValue<T, P> = true extends IsAny<T> | IsAny<P> ? any : true extends IsNever<T> | IsNever<P> ? never : P extends string ? WildcardValue<T, StringToArrayPath<P>> : P extends readonly [infer First extends KeyType, ...infer Rest extends KeyType[]] ? T extends Map<any, infer V> | Set<infer V> ? WildcardValue<V, Rest> | (First extends '*' ? never : undefined) : T extends Array_ ? First extends '*' ? T[number] : any[] extends T ? WildcardValue<T[First & keyof T], Rest> | undefined : First extends keyof T ? WildcardValue<T[First], Rest> : undefined : T extends Object_ ? First extends '*' ? T[keyof T] : Record<any, any> extends T ? WildcardValue<T[First], Rest> | undefined : WildcardValue<T[First], Rest> : never : T;
|
|
24
|
+
export type WildcardValue<T, P> = true extends IsAny<T> | IsAny<P> ? any : true extends IsNever<T> | IsNever<P> ? never : P extends string ? WildcardValue<T, StringToArrayPath<P>> : P extends readonly [infer First extends KeyType, ...infer Rest extends KeyType[]] ? T extends Map<any, infer V> | Set<infer V> ? WildcardValue<V, Rest> | (First extends '*' ? never : undefined) : T extends Array_ ? First extends '*' ? WildcardValue<T[number], Rest> : any[] extends T ? WildcardValue<T[First & keyof T], Rest> | undefined : First extends keyof T ? WildcardValue<T[First], Rest> : undefined : T extends Object_ ? First extends '*' ? WildcardValue<T[keyof T], Rest> : Record<any, any> extends T ? WildcardValue<T[First], Rest> | undefined : WildcardValue<T[First], Rest> : never : T;
|
|
19
25
|
export type WildcardMatch<S, W> = S extends string ? WildcardMatch<StringToArrayPath<S>, W> : W extends string ? WildcardMatch<S, StringToArrayPath<W>> : [S, W] extends [readonly [], readonly []] ? true : [S, W] extends [
|
|
20
26
|
readonly [infer SFirst, ...infer SRest],
|
|
21
27
|
readonly [infer WFirst, ...infer WRest]
|