@tanstack/form-core 1.4.0 → 1.4.1

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.
@@ -11,7 +11,6 @@ type Try<A1, A2, Catch = never> = A1 extends A2 ? A1 : Catch;
11
11
  * @private
12
12
  */
13
13
  export type Narrow<A> = Try<A, [], NarrowRaw<A>>;
14
- type IsAny<T> = 0 extends 1 & T ? true : false;
15
14
  export interface AnyDeepKeyAndValue {
16
15
  key: string;
17
16
  value: any;
@@ -42,8 +41,7 @@ export interface UnknownDeepKeyAndValue<TParent extends AnyDeepKeyAndValue> {
42
41
  key: UnknownAccessor<TParent>;
43
42
  value: unknown;
44
43
  }
45
- export type DeepKeyAndValueUnknown<TParent extends AnyDeepKeyAndValue> = UnknownDeepKeyAndValue<TParent>;
46
- export type DeepKeysAndValues<T, TParent extends AnyDeepKeyAndValue = never, TAcc = never> = IsAny<T> extends true ? T : T extends string | number | boolean | bigint | Date ? TAcc : T extends ReadonlyArray<any> ? number extends T['length'] ? DeepKeyAndValueArray<TParent, T, TAcc> : DeepKeyAndValueTuple<TParent, T, TAcc> : keyof T extends never ? TAcc | DeepKeyAndValueUnknown<TParent> : T extends object ? DeepKeyAndValueObject<TParent, T, TAcc> : TAcc;
44
+ export type DeepKeysAndValues<T, TParent extends AnyDeepKeyAndValue = never, TAcc = never> = unknown extends T ? TAcc | UnknownDeepKeyAndValue<TParent> : unknown extends T ? T : T extends string | number | boolean | bigint | Date ? TAcc : T extends ReadonlyArray<any> ? number extends T['length'] ? DeepKeyAndValueArray<TParent, T, TAcc> : DeepKeyAndValueTuple<TParent, T, TAcc> : keyof T extends never ? TAcc | UnknownDeepKeyAndValue<TParent> : T extends object ? DeepKeyAndValueObject<TParent, T, TAcc> : TAcc;
47
45
  export type DeepRecord<T> = {
48
46
  [TRecord in DeepKeysAndValues<T> extends AnyDeepKeyAndValue ? DeepKeysAndValues<T> : never as TRecord['key']]: TRecord['value'];
49
47
  };
@@ -11,7 +11,6 @@ type Try<A1, A2, Catch = never> = A1 extends A2 ? A1 : Catch;
11
11
  * @private
12
12
  */
13
13
  export type Narrow<A> = Try<A, [], NarrowRaw<A>>;
14
- type IsAny<T> = 0 extends 1 & T ? true : false;
15
14
  export interface AnyDeepKeyAndValue {
16
15
  key: string;
17
16
  value: any;
@@ -42,8 +41,7 @@ export interface UnknownDeepKeyAndValue<TParent extends AnyDeepKeyAndValue> {
42
41
  key: UnknownAccessor<TParent>;
43
42
  value: unknown;
44
43
  }
45
- export type DeepKeyAndValueUnknown<TParent extends AnyDeepKeyAndValue> = UnknownDeepKeyAndValue<TParent>;
46
- export type DeepKeysAndValues<T, TParent extends AnyDeepKeyAndValue = never, TAcc = never> = IsAny<T> extends true ? T : T extends string | number | boolean | bigint | Date ? TAcc : T extends ReadonlyArray<any> ? number extends T['length'] ? DeepKeyAndValueArray<TParent, T, TAcc> : DeepKeyAndValueTuple<TParent, T, TAcc> : keyof T extends never ? TAcc | DeepKeyAndValueUnknown<TParent> : T extends object ? DeepKeyAndValueObject<TParent, T, TAcc> : TAcc;
44
+ export type DeepKeysAndValues<T, TParent extends AnyDeepKeyAndValue = never, TAcc = never> = unknown extends T ? TAcc | UnknownDeepKeyAndValue<TParent> : unknown extends T ? T : T extends string | number | boolean | bigint | Date ? TAcc : T extends ReadonlyArray<any> ? number extends T['length'] ? DeepKeyAndValueArray<TParent, T, TAcc> : DeepKeyAndValueTuple<TParent, T, TAcc> : keyof T extends never ? TAcc | UnknownDeepKeyAndValue<TParent> : T extends object ? DeepKeyAndValueObject<TParent, T, TAcc> : TAcc;
47
45
  export type DeepRecord<T> = {
48
46
  [TRecord in DeepKeysAndValues<T> extends AnyDeepKeyAndValue ? DeepKeysAndValues<T> : never as TRecord['key']]: TRecord['value'];
49
47
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/form-core",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "description": "Powerful, type-safe, framework agnostic forms.",
5
5
  "author": "tannerlinsley",
6
6
  "license": "MIT",
package/src/util-types.ts CHANGED
@@ -19,8 +19,6 @@ type Try<A1, A2, Catch = never> = A1 extends A2 ? A1 : Catch
19
19
  */
20
20
  export type Narrow<A> = Try<A, [], NarrowRaw<A>>
21
21
 
22
- type IsAny<T> = 0 extends 1 & T ? true : false
23
-
24
22
  export interface AnyDeepKeyAndValue {
25
23
  key: string
26
24
  value: any
@@ -117,15 +115,13 @@ export interface UnknownDeepKeyAndValue<TParent extends AnyDeepKeyAndValue> {
117
115
  value: unknown
118
116
  }
119
117
 
120
- export type DeepKeyAndValueUnknown<TParent extends AnyDeepKeyAndValue> =
121
- UnknownDeepKeyAndValue<TParent>
122
-
123
118
  export type DeepKeysAndValues<
124
119
  T,
125
120
  TParent extends AnyDeepKeyAndValue = never,
126
121
  TAcc = never,
127
- > =
128
- IsAny<T> extends true
122
+ > = unknown extends T
123
+ ? TAcc | UnknownDeepKeyAndValue<TParent>
124
+ : unknown extends T // this stops runaway recursion when T is any
129
125
  ? T
130
126
  : T extends string | number | boolean | bigint | Date
131
127
  ? TAcc
@@ -134,7 +130,7 @@ export type DeepKeysAndValues<
134
130
  ? DeepKeyAndValueArray<TParent, T, TAcc>
135
131
  : DeepKeyAndValueTuple<TParent, T, TAcc>
136
132
  : keyof T extends never
137
- ? TAcc | DeepKeyAndValueUnknown<TParent>
133
+ ? TAcc | UnknownDeepKeyAndValue<TParent>
138
134
  : T extends object
139
135
  ? DeepKeyAndValueObject<TParent, T, TAcc>
140
136
  : TAcc