react-hook-form 7.25.0 → 8.0.0-alpha.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.
Files changed (113) hide show
  1. package/README.md +15 -4
  2. package/dist/__typetests__/__fixtures__/index.d.ts +2 -0
  3. package/dist/__typetests__/__fixtures__/index.d.ts.map +1 -0
  4. package/dist/__typetests__/__fixtures__/type.d.ts +12 -0
  5. package/dist/__typetests__/__fixtures__/type.d.ts.map +1 -0
  6. package/dist/__typetests__/types/__fixtures__/index.d.ts +4 -0
  7. package/dist/__typetests__/types/__fixtures__/index.d.ts.map +1 -0
  8. package/dist/__typetests__/types/__fixtures__/pathString.d.ts +4 -0
  9. package/dist/__typetests__/types/__fixtures__/pathString.d.ts.map +1 -0
  10. package/dist/__typetests__/types/__fixtures__/traversable.d.ts +14 -0
  11. package/dist/__typetests__/types/__fixtures__/traversable.d.ts.map +1 -0
  12. package/dist/__typetests__/types/__fixtures__/tuple.d.ts +15 -0
  13. package/dist/__typetests__/types/__fixtures__/tuple.d.ts.map +1 -0
  14. package/dist/__typetests__/types/form.test-d.d.ts +2 -0
  15. package/dist/__typetests__/types/form.test-d.d.ts.map +1 -0
  16. package/dist/__typetests__/types/path/auto.test-d.d.ts +2 -0
  17. package/dist/__typetests__/types/path/auto.test-d.d.ts.map +1 -0
  18. package/dist/__typetests__/types/path/internal/autoCompletePath.test-d.d.ts +2 -0
  19. package/dist/__typetests__/types/path/internal/autoCompletePath.test-d.d.ts.map +1 -0
  20. package/dist/__typetests__/types/path/internal/hasPath.test-d.d.ts +2 -0
  21. package/dist/__typetests__/types/path/internal/hasPath.test-d.d.ts.map +1 -0
  22. package/dist/__typetests__/types/path/internal/keys.test-d.d.ts +2 -0
  23. package/dist/__typetests__/types/path/internal/keys.test-d.d.ts.map +1 -0
  24. package/dist/__typetests__/types/path/internal/pathGetValue.test-d.d.ts +2 -0
  25. package/dist/__typetests__/types/path/internal/pathGetValue.test-d.d.ts.map +1 -0
  26. package/dist/__typetests__/types/path/internal/pathSetValue.test-d.d.ts +2 -0
  27. package/dist/__typetests__/types/path/internal/pathSetValue.test-d.d.ts.map +1 -0
  28. package/dist/__typetests__/types/path/internal/pathTuple.test-d.d.ts +2 -0
  29. package/dist/__typetests__/types/path/internal/pathTuple.test-d.d.ts.map +1 -0
  30. package/dist/__typetests__/types/path/internal/utils.test-d.d.ts +2 -0
  31. package/dist/__typetests__/types/path/internal/utils.test-d.d.ts.map +1 -0
  32. package/dist/__typetests__/types/path/lazy.test-d.d.ts +2 -0
  33. package/dist/__typetests__/types/path/lazy.test-d.d.ts.map +1 -0
  34. package/dist/__typetests__/types/path/value.test-d.d.ts +2 -0
  35. package/dist/__typetests__/types/path/value.test-d.d.ts.map +1 -0
  36. package/dist/__typetests__/types/util.test-d.d.ts +2 -0
  37. package/dist/__typetests__/types/util.test-d.d.ts.map +1 -0
  38. package/dist/__typetests__/utils/join.test-d.d.ts +2 -0
  39. package/dist/__typetests__/utils/join.test-d.d.ts.map +1 -0
  40. package/dist/__typetests__/utils/of.test-d.d.ts +2 -0
  41. package/dist/__typetests__/utils/of.test-d.d.ts.map +1 -0
  42. package/dist/constants.d.ts +1 -0
  43. package/dist/constants.d.ts.map +1 -1
  44. package/dist/controller.d.ts +1 -1
  45. package/dist/controller.d.ts.map +1 -1
  46. package/dist/index.cjs.js +1 -1
  47. package/dist/index.cjs.js.map +1 -1
  48. package/dist/index.esm.mjs +113 -90
  49. package/dist/index.esm.mjs.map +1 -1
  50. package/dist/index.umd.js +1 -1
  51. package/dist/index.umd.js.map +1 -1
  52. package/dist/logic/createFormControl.d.ts.map +1 -1
  53. package/dist/logic/getProxyFormState.d.ts.map +1 -1
  54. package/dist/logic/getResolverOptions.d.ts +2 -2
  55. package/dist/logic/hasValidation.d.ts +1 -1
  56. package/dist/logic/validateField.d.ts.map +1 -1
  57. package/dist/types/controller.d.ts +6 -6
  58. package/dist/types/controller.d.ts.map +1 -1
  59. package/dist/types/fieldArray.d.ts +7 -9
  60. package/dist/types/fieldArray.d.ts.map +1 -1
  61. package/dist/types/form.d.ts +26 -27
  62. package/dist/types/form.d.ts.map +1 -1
  63. package/dist/types/path/auto.d.ts +76 -0
  64. package/dist/types/path/auto.d.ts.map +1 -0
  65. package/dist/types/path/branded.d.ts +61 -0
  66. package/dist/types/path/branded.d.ts.map +1 -0
  67. package/dist/types/path/index.d.ts +7 -3
  68. package/dist/types/path/index.d.ts.map +1 -1
  69. package/dist/types/path/internal/autoCompletePath.d.ts +173 -0
  70. package/dist/types/path/internal/autoCompletePath.d.ts.map +1 -0
  71. package/dist/types/path/internal/hasPath.d.ts +56 -0
  72. package/dist/types/path/internal/hasPath.d.ts.map +1 -0
  73. package/dist/types/path/internal/keys.d.ts +103 -0
  74. package/dist/types/path/internal/keys.d.ts.map +1 -0
  75. package/dist/types/path/internal/pathGetValue.d.ts +76 -0
  76. package/dist/types/path/internal/pathGetValue.d.ts.map +1 -0
  77. package/dist/types/path/internal/pathSetValue.d.ts +96 -0
  78. package/dist/types/path/internal/pathSetValue.d.ts.map +1 -0
  79. package/dist/types/path/internal/pathTuple.d.ts +73 -0
  80. package/dist/types/path/internal/pathTuple.d.ts.map +1 -0
  81. package/dist/types/path/internal/utils.d.ts +84 -0
  82. package/dist/types/path/internal/utils.d.ts.map +1 -0
  83. package/dist/types/path/lazy.d.ts +62 -0
  84. package/dist/types/path/lazy.d.ts.map +1 -0
  85. package/dist/types/path/pathString.d.ts +6 -0
  86. package/dist/types/path/pathString.d.ts.map +1 -0
  87. package/dist/types/path/value.d.ts +49 -0
  88. package/dist/types/path/value.d.ts.map +1 -0
  89. package/dist/types/utils.d.ts +11 -2
  90. package/dist/types/utils.d.ts.map +1 -1
  91. package/dist/types/validator.d.ts +2 -2
  92. package/dist/types/validator.d.ts.map +1 -1
  93. package/dist/useController.d.ts +2 -2
  94. package/dist/useController.d.ts.map +1 -1
  95. package/dist/useFieldArray.d.ts +1 -1
  96. package/dist/useFieldArray.d.ts.map +1 -1
  97. package/dist/useFormState.d.ts +2 -2
  98. package/dist/useFormState.d.ts.map +1 -1
  99. package/dist/useWatch.d.ts +6 -7
  100. package/dist/useWatch.d.ts.map +1 -1
  101. package/dist/utils/index.d.ts +3 -1
  102. package/dist/utils/index.d.ts.map +1 -1
  103. package/dist/utils/join.d.ts +16 -0
  104. package/dist/utils/join.d.ts.map +1 -0
  105. package/dist/utils/of.d.ts +13 -0
  106. package/dist/utils/of.d.ts.map +1 -0
  107. package/package.json +24 -24
  108. package/dist/types/path/common.d.ts +0 -316
  109. package/dist/types/path/common.d.ts.map +0 -1
  110. package/dist/types/path/eager.d.ts +0 -82
  111. package/dist/types/path/eager.d.ts.map +0 -1
  112. package/dist/utils/omitKeys.d.ts +0 -3
  113. package/dist/utils/omitKeys.d.ts.map +0 -1
@@ -1,316 +0,0 @@
1
- import { IsAny, IsNever } from '../utils';
2
- /**
3
- * Type alias to `string` which describes a lodash-like path through an object.
4
- * E.g. `'foo.bar.0.baz'`
5
- */
6
- export declare type PathString = string;
7
- /**
8
- * Type which can be traversed through with a {@link PathString}.
9
- * I.e. objects, arrays, and tuples
10
- */
11
- export declare type Traversable = object;
12
- /**
13
- * Type to query whether an array type T is a tuple type.
14
- * @typeParam T - type which may be an array or tuple
15
- * @example
16
- * ```
17
- * IsTuple<[number]> = true
18
- * IsTuple<number[]> = false
19
- * ```
20
- */
21
- export declare type IsTuple<T extends ReadonlyArray<any>> = number extends T['length'] ? false : true;
22
- /**
23
- * Type which can be used to index an array or tuple type.
24
- */
25
- export declare type ArrayKey = number;
26
- /**
27
- * Type which can be used to index an object.
28
- */
29
- export declare type Key = string;
30
- /**
31
- * Type to assert that a type is a {@link Key}.
32
- * @typeParam T - type which may be a {@link Key}
33
- */
34
- export declare type AsKey<T> = Extract<T, Key>;
35
- /**
36
- * Type to convert a type to a {@link Key}.
37
- * @typeParam T - type which may be converted to a {@link Key}
38
- */
39
- export declare type ToKey<T> = T extends ArrayKey ? `${T}` : AsKey<T>;
40
- /**
41
- * Type which describes a path through an object
42
- * as a list of individual {@link Key}s.
43
- */
44
- export declare type PathTuple = Key[];
45
- /**
46
- * Type to assert that a type is a {@link PathTuple}.
47
- * @typeParam T - type which may be a {@link PathTuple}
48
- */
49
- export declare type AsPathTuple<T> = Extract<T, PathTuple>;
50
- /**
51
- * Type to intersect a union type.
52
- * See https://fettblog.eu/typescript-union-to-intersection/
53
- * @typeParam U - union
54
- * @example
55
- * ```
56
- * UnionToIntersection<{ foo: string } | { bar: number }>
57
- * = { foo: string; bar: number }
58
- * ```
59
- */
60
- export declare type UnionToIntersection<U> = (U extends any ? (_: U) => any : never) extends (_: infer I) => any ? I : never;
61
- /**
62
- * Type which appends a {@link Key} to the {@link PathTuple} only if it is not
63
- * blank, i.e. not the empty string.
64
- * @typeParam PT - path
65
- * @typeParam K - key
66
- * @example
67
- * ```
68
- * AppendNonBlankKey<['foo'], 'bar'> = ['foo', 'bar']
69
- * AppendNonBlankKey<['foo'], ''> = ['foo']
70
- * ```
71
- */
72
- declare type AppendNonBlankKey<PT extends PathTuple, K extends Key> = K extends '' ? PT : [...PT, K];
73
- /**
74
- * Type to implement {@link SplitPathString} tail recursively.
75
- * @typeParam PS - remaining {@link PathString} which should be split into its
76
- * individual {@link Key}s
77
- * @typeParam PT - accumulator of the {@link Key}s which have been split from
78
- * the original {@link PathString} already
79
- */
80
- declare type SplitPathStringImpl<PS extends PathString, PT extends PathTuple> = PS extends `${infer K}.${infer R}` ? SplitPathStringImpl<R, AppendNonBlankKey<PT, K>> : AppendNonBlankKey<PT, PS>;
81
- /**
82
- * Type to split a {@link PathString} into a {@link PathTuple}.
83
- * The individual {@link Key}s may be empty strings.
84
- * @typeParam PS - {@link PathString} which should be split into its
85
- * individual {@link Key}s
86
- * @example
87
- * ```
88
- * SplitPathString<'foo'> = ['foo']
89
- * SplitPathString<'foo.bar.0.baz'> = ['foo', 'bar', '0', 'baz']
90
- * SplitPathString<'.'> = []
91
- * ```
92
- */
93
- export declare type SplitPathString<PS extends PathString> = SplitPathStringImpl<PS, [
94
- ]>;
95
- /**
96
- * Type to implement {@link JoinPathTuple} tail-recursively.
97
- * @typeParam PT - remaining {@link Key}s which needs to be joined
98
- * @typeParam PS - accumulator of the already joined {@link Key}s
99
- */
100
- declare type JoinPathTupleImpl<PT extends PathTuple, PS extends PathString> = PT extends [infer K, ...infer R] ? JoinPathTupleImpl<AsPathTuple<R>, `${PS}.${AsKey<K>}`> : PS;
101
- /**
102
- * Type to join a {@link PathTuple} to a {@link PathString}.
103
- * @typeParam PT - {@link PathTuple} which should be joined.
104
- * @example
105
- * ```
106
- * JoinPathTuple<['foo']> = 'foo'
107
- * JoinPathTuple<['foo', 'bar', '0', 'baz']> = 'foo.bar.0.baz'
108
- * JoinPathTuple<[]> = never
109
- * ```
110
- */
111
- export declare type JoinPathTuple<PT extends PathTuple> = PT extends [
112
- infer K,
113
- ...infer R
114
- ] ? JoinPathTupleImpl<AsPathTuple<R>, AsKey<K>> : never;
115
- /**
116
- * Type which converts all keys of an object to {@link Key}s.
117
- * @typeParam T - object type
118
- * @example
119
- * ```
120
- * MapKeys<{0: string}> = {'0': string}
121
- * ```
122
- */
123
- declare type MapKeys<T> = {
124
- [K in keyof T as ToKey<K>]: T[K];
125
- };
126
- /**
127
- * Type to access a type by a key.
128
- * - Returns undefined if it can't be indexed by that key.
129
- * - Returns null if the type is null.
130
- * - Returns undefined if the type is not traversable.
131
- * @typeParam T - type which is indexed by the key
132
- * @typeParam K - key into the type
133
- * ```
134
- * TryAccess<{foo: string}, 'foo'> = string
135
- * TryAccess<{foo: string}, 'bar'> = undefined
136
- * TryAccess<null, 'foo'> = null
137
- * TryAccess<string, 'foo'> = undefined
138
- * ```
139
- */
140
- declare type TryAccess<T, K> = K extends keyof T ? T[K] : T extends null ? null : undefined;
141
- /**
142
- * Type to access an array type by a key.
143
- * Returns undefined if the key is non-numeric.
144
- * @typeParam T - type which is indexed by the key
145
- * @typeParam K - key into the type
146
- * ```
147
- * TryAccessArray<string[], '0'> = string
148
- * TryAccessArray<string[], 'foo'> = undefined
149
- * ```
150
- */
151
- declare type TryAccessArray<T extends ReadonlyArray<any>, K extends Key> = K extends `${ArrayKey}` ? T[number] : TryAccess<T, K>;
152
- /**
153
- * Type to evaluate the type which the given key points to.
154
- * @typeParam T - type which is indexed by the key
155
- * @typeParam K - key into the type
156
- * @example
157
- * ```
158
- * EvaluateKey<{foo: string}, 'foo'> = string
159
- * EvaluateKey<[number, string], '1'> = string
160
- * EvaluateKey<string[], '1'> = string
161
- * ```
162
- */
163
- export declare type EvaluateKey<T, K extends Key> = T extends ReadonlyArray<any> ? IsTuple<T> extends true ? TryAccess<T, K> : TryAccessArray<T, K> : TryAccess<MapKeys<T>, K>;
164
- /**
165
- * Type to evaluate the type which the given path points to.
166
- * @typeParam T - deeply nested type which is indexed by the path
167
- * @typeParam PT - path into the deeply nested type
168
- * @example
169
- * ```
170
- * EvaluatePath<{foo: {bar: string}}, ['foo', 'bar']> = string
171
- * EvaluatePath<[number, string], ['1']> = string
172
- * EvaluatePath<number, []> = number
173
- * EvaluatePath<number, ['foo']> = undefined
174
- * ```
175
- */
176
- export declare type EvaluatePath<T, PT extends PathTuple> = PT extends [
177
- infer K,
178
- ...infer R
179
- ] ? EvaluatePath<EvaluateKey<T, AsKey<K>>, AsPathTuple<R>> : T;
180
- /**
181
- * Type which given a tuple type returns its own keys, i.e. only its indices.
182
- * @typeParam T - tuple type
183
- * @example
184
- * ```
185
- * TupleKeys<[number, string]> = '0' | '1'
186
- * ```
187
- */
188
- export declare type TupleKeys<T extends ReadonlyArray<any>> = Exclude<keyof T, keyof any[]>;
189
- /**
190
- * Type which extracts all numeric keys from an object.
191
- * @typeParam T - type
192
- * @example
193
- * ```
194
- * NumericObjectKeys<{0: string, '1': string, foo: string}> = '0' | '1'
195
- * ```
196
- */
197
- declare type NumericObjectKeys<T extends Traversable> = ToKey<Extract<keyof T, ArrayKey | `${ArrayKey}`>>;
198
- /**
199
- * Type which extracts all numeric keys from an object, tuple, or array.
200
- * If a union is passed, it evaluates to the overlapping numeric keys.
201
- * @typeParam T - type
202
- * @example
203
- * ```
204
- * NumericKeys<{0: string, '1': string, foo: string}> = '0' | '1'
205
- * NumericKeys<number[]> = `${number}`
206
- * NumericKeys<[string, number]> = '0' | '1'
207
- * NumericKeys<{0: string, '1': string} | [number] | number[]> = '0'
208
- * ```
209
- */
210
- export declare type NumericKeys<T extends Traversable> = UnionToIntersection<T extends ReadonlyArray<any> ? IsTuple<T> extends true ? [TupleKeys<T>] : [ToKey<ArrayKey>] : [NumericObjectKeys<T>]>[never];
211
- /**
212
- * Type which extracts all keys from an object.
213
- * If a union is passed, it evaluates to the overlapping keys.
214
- * @typeParam T - object type
215
- * @example
216
- * ```
217
- * ObjectKeys<{foo: string, bar: string}, string> = 'foo' | 'bar'
218
- * ObjectKeys<{foo: string, bar: number}, string> = 'foo'
219
- * ```
220
- */
221
- export declare type ObjectKeys<T extends Traversable> = Exclude<ToKey<keyof T>, `${string}.${string}` | ''>;
222
- /**
223
- * Type to check whether a type's property matches the constraint type
224
- * and return its key. Converts the key to a {@link Key}.
225
- * @typeParam T - type whose property should be checked
226
- * @typeParam K - key of the property
227
- * @typeParam U - constraint type
228
- * @example
229
- * ```
230
- * CheckKeyConstraint<{foo: string}, 'foo', string> = 'foo'
231
- * CheckKeyConstraint<{foo: string}, 'foo', number> = never
232
- * CheckKeyConstraint<string[], number, string> = `${number}`
233
- * ```
234
- */
235
- export declare type CheckKeyConstraint<T, K extends Key, U> = K extends any ? EvaluateKey<T, K> extends U ? K : never : never;
236
- /**
237
- * Type which evaluates to true when the type is an array or tuple or is a union
238
- * which contains an array or tuple.
239
- * @typeParam T - type
240
- * @example
241
- * ```
242
- * ContainsIndexable<{foo: string}> = false
243
- * ContainsIndexable<{foo: string} | number[]> = true
244
- * ```
245
- */
246
- export declare type ContainsIndexable<T> = IsNever<Extract<T, ReadonlyArray<any>>> extends true ? false : true;
247
- /**
248
- * Type to implement {@link Keys} for non-nullable values.
249
- * @typeParam T - non-nullable type whose property should be checked
250
- */
251
- declare type KeysImpl<T> = [T] extends [Traversable] ? ContainsIndexable<T> extends true ? NumericKeys<T> : ObjectKeys<T> : never;
252
- /**
253
- * Type to find all properties of a type that match the constraint type
254
- * and return their keys.
255
- * If a union is passed, it evaluates to the overlapping keys.
256
- * @typeParam T - type whose property should be checked
257
- * @typeParam U - constraint type
258
- * @example
259
- * ```
260
- * Keys<{foo: string, bar: string}, string> = 'foo' | 'bar'
261
- * Keys<{foo?: string, bar?: string}> = 'foo' | 'bar'
262
- * Keys<{foo: string, bar: number}, string> = 'foo'
263
- * Keys<[string, number], string> = '0'
264
- * Keys<string[], string> = `${number}`
265
- * Keys<{0: string, '1': string} | [number] | number[]> = '0'
266
- * ```
267
- */
268
- export declare type Keys<T, U = unknown> = IsAny<T> extends true ? Key : IsNever<T> extends true ? Key : IsNever<NonNullable<T>> extends true ? never : CheckKeyConstraint<T, KeysImpl<NonNullable<T>>, U>;
269
- /**
270
- * Type to check whether a {@link Key} is present in a type.
271
- * If a union of {@link Key}s is passed, all {@link Key}s have to be present
272
- * in the type.
273
- * @typeParam T - type which is introspected
274
- * @typeParam K - key
275
- * @example
276
- * ```
277
- * HasKey<{foo: string}, 'foo'> = true
278
- * HasKey<{foo: string}, 'bar'> = false
279
- * HasKey<{foo: string}, 'foo' | 'bar'> = false
280
- * ```
281
- */
282
- export declare type HasKey<T, K extends Key> = IsNever<Exclude<K, Keys<T>>>;
283
- /**
284
- * Type to implement {@link ValidPathPrefix} tail recursively.
285
- * @typeParam T - type which the path should be checked against
286
- * @typeParam PT - path which should exist within the given type
287
- * @typeParam VPT - accumulates the prefix of {@link Key}s which have been
288
- * confirmed to exist already
289
- */
290
- declare type ValidPathPrefixImpl<T, PT extends PathTuple, VPT extends PathTuple> = PT extends [infer K, ...infer R] ? HasKey<T, AsKey<K>> extends true ? ValidPathPrefixImpl<EvaluateKey<T, AsKey<K>>, AsPathTuple<R>, AsPathTuple<[...VPT, K]>> : VPT : VPT;
291
- /**
292
- * Type to find the longest path prefix which is still valid,
293
- * i.e. exists within the given type.
294
- * @typeParam T - type which the path should be checked against
295
- * @typeParam PT - path which should exist within the given type
296
- * @example
297
- * ```
298
- * ValidPathPrefix<{foo: {bar: string}}, ['foo', 'bar']> = ['foo', 'bar']
299
- * ValidPathPrefix<{foo: {bar: string}}, ['foo', 'ba']> = ['foo']
300
- * ```
301
- */
302
- export declare type ValidPathPrefix<T, PT extends PathTuple> = ValidPathPrefixImpl<T, PT, [
303
- ]>;
304
- /**
305
- * Type to check whether a path through a type exists.
306
- * @typeParam T - type which the path should be checked against
307
- * @typeParam PT - path which should exist within the given type
308
- * @example
309
- * ```
310
- * HasPath<{foo: {bar: string}}, ['foo', 'bar']> = true
311
- * HasPath<{foo: {bar: string}}, ['foo', 'ba']> = false
312
- * ```
313
- */
314
- export declare type HasPath<T, PT extends PathTuple> = ValidPathPrefix<T, PT> extends PT ? true : false;
315
- export {};
316
- //# sourceMappingURL=common.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/types/path/common.ts"],"names":[],"mappings":"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"}
@@ -1,82 +0,0 @@
1
- import { FieldValues } from '../fields';
2
- import { Primitive } from '../utils';
3
- import { ArrayKey, IsTuple, TupleKeys } from './common';
4
- /**
5
- * Helper type for recursively constructing paths through a type.
6
- * See {@link Path}
7
- */
8
- declare type PathImpl<K extends string | number, V> = V extends Primitive ? `${K}` : `${K}` | `${K}.${Path<V>}`;
9
- /**
10
- * Type which eagerly collects all paths through a type
11
- * @typeParam T - type which should be introspected
12
- * @example
13
- * ```
14
- * Path<{foo: {bar: string}}> = 'foo' | 'foo.bar'
15
- * ```
16
- */
17
- export declare type Path<T> = T extends ReadonlyArray<infer V> ? IsTuple<T> extends true ? {
18
- [K in TupleKeys<T>]-?: PathImpl<K & string, T[K]>;
19
- }[TupleKeys<T>] : PathImpl<ArrayKey, V> : {
20
- [K in keyof T]-?: PathImpl<K & string, T[K]>;
21
- }[keyof T];
22
- /**
23
- * See {@link Path}
24
- */
25
- export declare type FieldPath<TFieldValues extends FieldValues> = Path<TFieldValues>;
26
- /**
27
- * Helper type for recursively constructing paths through a type.
28
- * See {@link ArrayPath}
29
- */
30
- declare type ArrayPathImpl<K extends string | number, V> = V extends Primitive ? never : V extends ReadonlyArray<infer U> ? U extends Primitive ? never : `${K}` | `${K}.${ArrayPath<V>}` : `${K}.${ArrayPath<V>}`;
31
- /**
32
- * Type which eagerly collects all paths through a type which point to an array
33
- * type.
34
- * @typeParam T - type which should be introspected
35
- * @example
36
- * ```
37
- * Path<{foo: {bar: string[], baz: number[]}}> = 'foo.bar' | 'foo.baz'
38
- * ```
39
- */
40
- export declare type ArrayPath<T> = T extends ReadonlyArray<infer V> ? IsTuple<T> extends true ? {
41
- [K in TupleKeys<T>]-?: ArrayPathImpl<K & string, T[K]>;
42
- }[TupleKeys<T>] : ArrayPathImpl<ArrayKey, V> : {
43
- [K in keyof T]-?: ArrayPathImpl<K & string, T[K]>;
44
- }[keyof T];
45
- /**
46
- * See {@link ArrayPath}
47
- */
48
- export declare type FieldArrayPath<TFieldValues extends FieldValues> = ArrayPath<TFieldValues>;
49
- /**
50
- * Type to evaluate the type which the given path points to.
51
- * @typeParam T - deeply nested type which is indexed by the path
52
- * @typeParam P - path into the deeply nested type
53
- * @example
54
- * ```
55
- * PathValue<{foo: {bar: string}}, 'foo.bar'> = string
56
- * PathValue<[number, string], '1'> = string
57
- * ```
58
- */
59
- export declare type PathValue<T, P extends Path<T> | ArrayPath<T>> = T extends any ? P extends `${infer K}.${infer R}` ? K extends keyof T ? R extends Path<T[K]> ? PathValue<T[K], R> : never : K extends `${ArrayKey}` ? T extends ReadonlyArray<infer V> ? PathValue<V, R & Path<V>> : never : never : P extends keyof T ? T[P] : P extends `${ArrayKey}` ? T extends ReadonlyArray<infer V> ? V : never : never : never;
60
- /**
61
- * See {@link PathValue}
62
- */
63
- export declare type FieldPathValue<TFieldValues extends FieldValues, TFieldPath extends FieldPath<TFieldValues>> = PathValue<TFieldValues, TFieldPath>;
64
- /**
65
- * See {@link PathValue}
66
- */
67
- export declare type FieldArrayPathValue<TFieldValues extends FieldValues, TFieldArrayPath extends FieldArrayPath<TFieldValues>> = PathValue<TFieldValues, TFieldArrayPath>;
68
- /**
69
- * Type to evaluate the type which the given paths point to.
70
- * @typeParam TFieldValues - field values which are indexed by the paths
71
- * @typeParam TPath - paths into the deeply nested field values
72
- * @example
73
- * ```
74
- * FieldPathValues<{foo: {bar: string}}, ['foo', 'foo.bar']>
75
- * = [{bar: string}, string]
76
- * ```
77
- */
78
- export declare type FieldPathValues<TFieldValues extends FieldValues, TPath extends FieldPath<TFieldValues>[] | readonly FieldPath<TFieldValues>[]> = {} & {
79
- [K in keyof TPath]: FieldPathValue<TFieldValues, TPath[K] & FieldPath<TFieldValues>>;
80
- };
81
- export {};
82
- //# sourceMappingURL=eager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eager.d.ts","sourceRoot":"","sources":["../../../src/types/path/eager.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- declare const _default: <T extends Partial<Record<"id", string>>[]>(fields: T, keyName: string) => Omit<Partial<Record<"id", string>>, string>[];
2
- export default _default;
3
- //# sourceMappingURL=omitKeys.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"omitKeys.d.ts","sourceRoot":"","sources":["../../src/utils/omitKeys.ts"],"names":[],"mappings":"wFAMW,MAAM;AAFjB,wBAGsD"}