cross-state 0.8.5 → 0.8.6

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.
@@ -1,7 +1,7 @@
1
1
  import type { ArrayToStringPath, Array_, IsAny, IsNever, Object_, OptionalPropertyOf, StringToArrayPath, StringToNumber } from './typeHelpers';
2
2
  export type KeyType = string | number | symbol;
3
3
  export type GetKeys<T extends Object_ | Array_> = T extends Array_ ? T extends readonly [] ? never : '0' extends keyof T ? StringToNumber<keyof T> : number : keyof T;
4
- export type _PathAsArray<T, Optional, MaxDepth, Depth extends any[]> = 0 extends 1 & T ? KeyType[] : T extends never ? never : T extends Object_ ? Depth extends {
4
+ export type _PathAsArray<T, Optional, MaxDepth, Depth extends 1[]> = 0 extends 1 & T ? KeyType[] : T extends never ? never : T extends Object_ ? Depth extends {
5
5
  length: MaxDepth;
6
6
  } ? string[] : T extends Map<infer K extends KeyType, infer V> ? [K] | [K, ..._PathAsArray<V, Optional, MaxDepth, [...Depth, 1]>] : T extends Set<any> ? [number] : {
7
7
  [K in GetKeys<T>]: (Optional extends true ? (K extends OptionalPropertyOf<T> ? [K] : never) : [K]) | [K, ..._PathAsArray<T[K], Optional, MaxDepth, [...Depth, 1]>];
@@ -10,8 +10,12 @@ export type PathAsArray<T, Optional extends boolean = false, MaxDepth extends nu
10
10
  export type PathAsString<T, Optional extends boolean = false, MaxDepth extends number = 5> = ArrayToStringPath<PathAsArray<T, Optional, MaxDepth>>;
11
11
  export type Path<T, Optional extends boolean = false, MaxDepth extends number = 5> = PathAsString<T, Optional, MaxDepth> | PathAsArray<T, Optional, MaxDepth>;
12
12
  export type Value<T, P> = true extends IsAny<T> | IsAny<P> ? any : true extends IsNever<T> | IsNever<P> ? never : P extends string ? Value<T, StringToArrayPath<P>> : P extends [infer First extends KeyType, ...infer Rest extends 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 : T;
13
- export type WildcardPathAsArray<T> = [] | (0 extends 1 & T ? KeyType[] : T extends never ? never : T extends Object_ | Array_ ? {
14
- [K in GetKeys<T>]: ['*'] | [K] | [K, ...WildcardPathAsArray<T[K]>];
15
- }[GetKeys<T>] : T extends Map<infer K extends KeyType, infer V> ? ['*'] | [K] | [K, ...WildcardPathAsArray<V>] : T extends Set<any> ? ['*'] | [number] : never);
16
- export type WildcardPathAsString<T> = ArrayToStringPath<WildcardPathAsArray<T>>;
17
- export type WildcardPath<T> = WildcardPathAsString<T> | WildcardPathAsArray<T>;
13
+ export type _WildcardPathAsArray<T, MaxDepth, Depth extends 1[]> = [] | (0 extends 1 & T ? KeyType[] : T extends never ? never : T extends Object_ ? Depth extends {
14
+ length: MaxDepth;
15
+ } ? string[] : T extends Map<infer K extends KeyType, infer V> ? ['*'] | [K] | [K, ..._WildcardPathAsArray<V, MaxDepth, [...Depth, 1]>] : T extends Set<any> ? ['*'] | [number] : {
16
+ [K in GetKeys<T>]: ['*'] | [K] | [K, ..._WildcardPathAsArray<T[K], MaxDepth, [...Depth, 1]>];
17
+ }[GetKeys<T>] : never);
18
+ export type WildcardPathAsArray<T, MaxDepth extends number = 5> = _WildcardPathAsArray<T, MaxDepth, [
19
+ ]>;
20
+ export type WildcardPathAsString<T, MaxDepth extends number = 5> = ArrayToStringPath<_WildcardPathAsArray<T, MaxDepth, []>>;
21
+ export type WildcardPath<T, MaxDepth extends number = 5> = WildcardPathAsString<T, MaxDepth> | WildcardPathAsArray<T, MaxDepth>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cross-state",
3
- "version": "0.8.5",
3
+ "version": "0.8.6",
4
4
  "description": "(React) state library",
5
5
  "license": "ISC",
6
6
  "repository": "schummar/schummar-state",