@@ -44,69 +44,69 @@ type SkipTokenForUseQueries = symbol
44
44
type GetUseQueryOptionsForUseQueries < T > =
45
45
// Part 1: if UseQueryOptions are already being sent through, then just return T
46
46
T extends UseQueryOptions
47
- ? DeepUnwrapRef < T >
48
- : // Part 2: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }
49
- T extends {
50
- queryFnData : infer TQueryFnData
51
- error ?: infer TError
52
- data : infer TData
53
- }
54
- ? UseQueryOptionsForUseQueries < TQueryFnData , TError , TData >
55
- : T extends { queryFnData : infer TQueryFnData ; error ?: infer TError }
56
- ? UseQueryOptionsForUseQueries < TQueryFnData , TError >
57
- : T extends { data : infer TData ; error ?: infer TError }
58
- ? UseQueryOptionsForUseQueries < unknown , TError , TData >
59
- : // Part 3: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
60
- T extends [ infer TQueryFnData , infer TError , infer TData ]
61
- ? UseQueryOptionsForUseQueries < TQueryFnData , TError , TData >
62
- : T extends [ infer TQueryFnData , infer TError ]
63
- ? UseQueryOptionsForUseQueries < TQueryFnData , TError >
64
- : T extends [ infer TQueryFnData ]
65
- ? UseQueryOptionsForUseQueries < TQueryFnData >
66
- : // Part 4: responsible for inferring and enforcing type if no explicit parameter was provided
67
- T extends {
68
- queryFn ?:
69
- | QueryFunction < infer TQueryFnData , infer TQueryKey >
70
- | SkipTokenForUseQueries
71
- select ?: ( data : any ) => infer TData
72
- throwOnError ?: ThrowOnError < any , infer TError , any , any >
73
- }
74
- ? UseQueryOptionsForUseQueries <
75
- TQueryFnData ,
76
- unknown extends TError ? DefaultError : TError ,
77
- unknown extends TData ? TQueryFnData : TData ,
78
- TQueryKey
79
- >
80
- : T extends {
81
- queryFn ?:
82
- | QueryFunction < infer TQueryFnData , infer TQueryKey >
83
- | SkipTokenForUseQueries
84
- throwOnError ?: ThrowOnError < any , infer TError , any , any >
85
- }
86
- ? UseQueryOptionsForUseQueries <
87
- TQueryFnData ,
88
- TError ,
89
- TQueryFnData ,
90
- TQueryKey
91
- >
92
- : // Fallback
93
- UseQueryOptionsForUseQueries
47
+ ? DeepUnwrapRef < T >
48
+ : // Part 2: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }
49
+ T extends {
50
+ queryFnData : infer TQueryFnData
51
+ error ?: infer TError
52
+ data : infer TData
53
+ }
54
+ ? UseQueryOptionsForUseQueries < TQueryFnData , TError , TData >
55
+ : T extends { queryFnData : infer TQueryFnData ; error ?: infer TError }
56
+ ? UseQueryOptionsForUseQueries < TQueryFnData , TError >
57
+ : T extends { data : infer TData ; error ?: infer TError }
58
+ ? UseQueryOptionsForUseQueries < unknown , TError , TData >
59
+ : // Part 3: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
60
+ T extends [ infer TQueryFnData , infer TError , infer TData ]
61
+ ? UseQueryOptionsForUseQueries < TQueryFnData , TError , TData >
62
+ : T extends [ infer TQueryFnData , infer TError ]
63
+ ? UseQueryOptionsForUseQueries < TQueryFnData , TError >
64
+ : T extends [ infer TQueryFnData ]
65
+ ? UseQueryOptionsForUseQueries < TQueryFnData >
66
+ : // Part 4: responsible for inferring and enforcing type if no explicit parameter was provided
67
+ T extends {
68
+ queryFn ?:
69
+ | QueryFunction < infer TQueryFnData , infer TQueryKey >
70
+ | SkipTokenForUseQueries
71
+ select ?: ( data : any ) => infer TData
72
+ throwOnError ?: ThrowOnError < any , infer TError , any , any >
73
+ }
74
+ ? UseQueryOptionsForUseQueries <
75
+ TQueryFnData ,
76
+ unknown extends TError ? DefaultError : TError ,
77
+ unknown extends TData ? TQueryFnData : TData ,
78
+ TQueryKey
79
+ >
80
+ : T extends {
81
+ queryFn ?:
82
+ | QueryFunction < infer TQueryFnData , infer TQueryKey >
83
+ | SkipTokenForUseQueries
84
+ throwOnError ?: ThrowOnError < any , infer TError , any , any >
85
+ }
86
+ ? UseQueryOptionsForUseQueries <
87
+ TQueryFnData ,
88
+ TError ,
89
+ TQueryFnData ,
90
+ TQueryKey
91
+ >
92
+ : // Fallback
93
+ UseQueryOptionsForUseQueries
94
94
95
95
// A defined initialData setting should return a DefinedQueryObserverResult rather than QueryObserverResult
96
96
type GetDefinedOrUndefinedQueryResult < T , TData , TError = unknown > = T extends {
97
97
initialData ?: infer TInitialData
98
98
}
99
99
? unknown extends TInitialData
100
- ? QueryObserverResult < TData , TError >
101
- : TInitialData extends TData
102
- ? DefinedQueryObserverResult < TData , TError >
103
- : TInitialData extends ( ) => infer TInitialDataResult
104
- ? unknown extends TInitialDataResult
105
- ? QueryObserverResult < TData , TError >
106
- : TInitialDataResult extends TData
107
- ? DefinedQueryObserverResult < TData , TError >
108
- : QueryObserverResult < TData , TError >
109
- : QueryObserverResult < TData , TError >
100
+ ? QueryObserverResult < TData , TError >
101
+ : TInitialData extends TData
102
+ ? DefinedQueryObserverResult < TData , TError >
103
+ : TInitialData extends ( ) => infer TInitialDataResult
104
+ ? unknown extends TInitialDataResult
105
+ ? QueryObserverResult < TData , TError >
106
+ : TInitialDataResult extends TData
107
+ ? DefinedQueryObserverResult < TData , TError >
108
+ : QueryObserverResult < TData , TError >
109
+ : QueryObserverResult < TData , TError >
110
110
: QueryObserverResult < TData , TError >
111
111
112
112
type GetUseQueryResult < T > =
@@ -118,51 +118,51 @@ type GetUseQueryResult<T> =
118
118
any ,
119
119
any
120
120
>
121
- ? GetDefinedOrUndefinedQueryResult <
122
- T ,
123
- undefined extends TData ? TQueryFnData : TData ,
124
- unknown extends TError ? DefaultError : TError
125
- >
126
- : // Part 2: responsible for mapping explicit type parameter to function result, if object
127
- T extends { queryFnData : any ; error ?: infer TError ; data : infer TData }
128
- ? GetDefinedOrUndefinedQueryResult < T , TData , TError >
129
- : T extends { queryFnData : infer TQueryFnData ; error ?: infer TError }
130
- ? GetDefinedOrUndefinedQueryResult < T , TQueryFnData , TError >
131
- : T extends { data : infer TData ; error ?: infer TError }
132
- ? GetDefinedOrUndefinedQueryResult < T , TData , TError >
133
- : // Part 3: responsible for mapping explicit type parameter to function result, if tuple
134
- T extends [ any , infer TError , infer TData ]
135
- ? GetDefinedOrUndefinedQueryResult < T , TData , TError >
136
- : T extends [ infer TQueryFnData , infer TError ]
137
- ? GetDefinedOrUndefinedQueryResult < T , TQueryFnData , TError >
138
- : T extends [ infer TQueryFnData ]
139
- ? GetDefinedOrUndefinedQueryResult < T , TQueryFnData >
140
- : // Part 4: responsible for mapping inferred type to results, if no explicit parameter was provided
141
- T extends {
142
- queryFn ?:
143
- | QueryFunction < infer TQueryFnData , any >
144
- | SkipTokenForUseQueries
145
- select ?: ( data : any ) => infer TData
146
- throwOnError ?: ThrowOnError < any , infer TError , any , any >
147
- }
148
- ? GetDefinedOrUndefinedQueryResult <
149
- T ,
150
- unknown extends TData ? TQueryFnData : TData ,
151
- unknown extends TError ? DefaultError : TError
152
- >
153
- : T extends {
154
- queryFn ?:
155
- | QueryFunction < infer TQueryFnData , any >
156
- | SkipTokenForUseQueries
157
- throwOnError ?: ThrowOnError < any , infer TError , any , any >
158
- }
159
- ? GetDefinedOrUndefinedQueryResult <
160
- T ,
161
- TQueryFnData ,
162
- unknown extends TError ? DefaultError : TError
163
- >
164
- : // Fallback
165
- QueryObserverResult
121
+ ? GetDefinedOrUndefinedQueryResult <
122
+ T ,
123
+ undefined extends TData ? TQueryFnData : TData ,
124
+ unknown extends TError ? DefaultError : TError
125
+ >
126
+ : // Part 2: responsible for mapping explicit type parameter to function result, if object
127
+ T extends { queryFnData : any ; error ?: infer TError ; data : infer TData }
128
+ ? GetDefinedOrUndefinedQueryResult < T , TData , TError >
129
+ : T extends { queryFnData : infer TQueryFnData ; error ?: infer TError }
130
+ ? GetDefinedOrUndefinedQueryResult < T , TQueryFnData , TError >
131
+ : T extends { data : infer TData ; error ?: infer TError }
132
+ ? GetDefinedOrUndefinedQueryResult < T , TData , TError >
133
+ : // Part 3: responsible for mapping explicit type parameter to function result, if tuple
134
+ T extends [ any , infer TError , infer TData ]
135
+ ? GetDefinedOrUndefinedQueryResult < T , TData , TError >
136
+ : T extends [ infer TQueryFnData , infer TError ]
137
+ ? GetDefinedOrUndefinedQueryResult < T , TQueryFnData , TError >
138
+ : T extends [ infer TQueryFnData ]
139
+ ? GetDefinedOrUndefinedQueryResult < T , TQueryFnData >
140
+ : // Part 4: responsible for mapping inferred type to results, if no explicit parameter was provided
141
+ T extends {
142
+ queryFn ?:
143
+ | QueryFunction < infer TQueryFnData , any >
144
+ | SkipTokenForUseQueries
145
+ select ?: ( data : any ) => infer TData
146
+ throwOnError ?: ThrowOnError < any , infer TError , any , any >
147
+ }
148
+ ? GetDefinedOrUndefinedQueryResult <
149
+ T ,
150
+ unknown extends TData ? TQueryFnData : TData ,
151
+ unknown extends TError ? DefaultError : TError
152
+ >
153
+ : T extends {
154
+ queryFn ?:
155
+ | QueryFunction < infer TQueryFnData , any >
156
+ | SkipTokenForUseQueries
157
+ throwOnError ?: ThrowOnError < any , infer TError , any , any >
158
+ }
159
+ ? GetDefinedOrUndefinedQueryResult <
160
+ T ,
161
+ TQueryFnData ,
162
+ unknown extends TError ? DefaultError : TError
163
+ >
164
+ : // Fallback
165
+ QueryObserverResult
166
166
167
167
/**
168
168
* UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
@@ -174,37 +174,37 @@ export type UseQueriesOptions<
174
174
> = TDepth [ 'length' ] extends MAXIMUM_DEPTH
175
175
? Array < UseQueryOptionsForUseQueries >
176
176
: T extends [ ]
177
- ? [ ]
178
- : T extends [ infer Head ]
179
- ? [ ...TResults , GetUseQueryOptionsForUseQueries < Head > ]
180
- : T extends [ infer Head , ...infer Tails ]
181
- ? UseQueriesOptions <
182
- [ ...Tails ] ,
183
- [ ...TResults , GetUseQueryOptionsForUseQueries < Head > ] ,
184
- [ ...TDepth , 1 ]
185
- >
186
- : ReadonlyArray < unknown > extends T
187
- ? T
188
- : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
189
- // use this to infer the param types in the case of Array.map() argument
190
- T extends Array <
191
- UseQueryOptionsForUseQueries <
192
- infer TQueryFnData ,
193
- infer TError ,
194
- infer TData ,
195
- infer TQueryKey
196
- >
197
- >
198
- ? Array <
199
- UseQueryOptionsForUseQueries <
200
- TQueryFnData ,
201
- TError ,
202
- TData ,
203
- TQueryKey
204
- >
205
- >
206
- : // Fallback
207
- Array < UseQueryOptionsForUseQueries >
177
+ ? [ ]
178
+ : T extends [ infer Head ]
179
+ ? [ ...TResults , GetUseQueryOptionsForUseQueries < Head > ]
180
+ : T extends [ infer Head , ...infer Tails ]
181
+ ? UseQueriesOptions <
182
+ [ ...Tails ] ,
183
+ [ ...TResults , GetUseQueryOptionsForUseQueries < Head > ] ,
184
+ [ ...TDepth , 1 ]
185
+ >
186
+ : ReadonlyArray < unknown > extends T
187
+ ? T
188
+ : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
189
+ // use this to infer the param types in the case of Array.map() argument
190
+ T extends Array <
191
+ UseQueryOptionsForUseQueries <
192
+ infer TQueryFnData ,
193
+ infer TError ,
194
+ infer TData ,
195
+ infer TQueryKey
196
+ >
197
+ >
198
+ ? Array <
199
+ UseQueryOptionsForUseQueries <
200
+ TQueryFnData ,
201
+ TError ,
202
+ TData ,
203
+ TQueryKey
204
+ >
205
+ >
206
+ : // Fallback
207
+ Array < UseQueryOptionsForUseQueries >
208
208
209
209
/**
210
210
* UseQueriesResults reducer recursively maps type param to results
@@ -216,16 +216,16 @@ export type UseQueriesResults<
216
216
> = TDepth [ 'length' ] extends MAXIMUM_DEPTH
217
217
? Array < QueryObserverResult >
218
218
: T extends [ ]
219
- ? [ ]
220
- : T extends [ infer Head ]
221
- ? [ ...TResults , GetUseQueryResult < Head > ]
222
- : T extends [ infer Head , ...infer Tails ]
223
- ? UseQueriesResults <
224
- [ ...Tails ] ,
225
- [ ...TResults , GetUseQueryResult < Head > ] ,
226
- [ ...TDepth , 1 ]
227
- >
228
- : { [ K in keyof T ] : GetUseQueryResult < T [ K ] > }
219
+ ? [ ]
220
+ : T extends [ infer Head ]
221
+ ? [ ...TResults , GetUseQueryResult < Head > ]
222
+ : T extends [ infer Head , ...infer Tails ]
223
+ ? UseQueriesResults <
224
+ [ ...Tails ] ,
225
+ [ ...TResults , GetUseQueryResult < Head > ] ,
226
+ [ ...TDepth , 1 ]
227
+ >
228
+ : { [ K in keyof T ] : GetUseQueryResult < T [ K ] > }
229
229
230
230
type UseQueriesOptionsArg < T extends Array < any > > = readonly [
231
231
...UseQueriesOptions < T > ,
@@ -240,12 +240,12 @@ export function useQueries<
240
240
...options
241
241
} : {
242
242
queries :
243
- | MaybeRefDeep < UseQueriesOptionsArg < T > >
244
- | MaybeRefDeep <
245
- readonly [
246
- ...{ [ K in keyof T ] : GetUseQueryOptionsForUseQueries < T [ K ] > } ,
247
- ]
248
- >
243
+ | MaybeRefDeep < UseQueriesOptionsArg < T > >
244
+ | MaybeRefDeep <
245
+ readonly [
246
+ ...{ [ K in keyof T ] : GetUseQueryOptionsForUseQueries < T [ K ] > } ,
247
+ ]
248
+ >
249
249
combine ?: ( result : UseQueriesResults < T > ) => TCombinedResult
250
250
shallow ?: boolean
251
251
} ,
0 commit comments