@tanstack/react-query 5.8.2 → 5.8.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.
Files changed (47) hide show
  1. package/build/codemods/coverage/clover.xml +2 -2
  2. package/build/codemods/coverage/index.html +1 -1
  3. package/build/legacy/suspense.cjs +1 -1
  4. package/build/legacy/suspense.cjs.map +1 -1
  5. package/build/legacy/suspense.d.cts +1 -1
  6. package/build/legacy/suspense.d.ts +1 -1
  7. package/build/legacy/suspense.js +1 -1
  8. package/build/legacy/suspense.js.map +1 -1
  9. package/build/legacy/useBaseQuery.cjs +1 -1
  10. package/build/legacy/useBaseQuery.cjs.map +1 -1
  11. package/build/legacy/useBaseQuery.js +1 -1
  12. package/build/legacy/useBaseQuery.js.map +1 -1
  13. package/build/legacy/useQueries.cjs +2 -2
  14. package/build/legacy/useQueries.cjs.map +1 -1
  15. package/build/legacy/useQueries.d.cts +18 -2
  16. package/build/legacy/useQueries.d.ts +18 -2
  17. package/build/legacy/useQueries.js +2 -2
  18. package/build/legacy/useQueries.js.map +1 -1
  19. package/build/legacy/useSuspenseQueries.cjs.map +1 -1
  20. package/build/legacy/useSuspenseQueries.js.map +1 -1
  21. package/build/modern/suspense.cjs +1 -1
  22. package/build/modern/suspense.cjs.map +1 -1
  23. package/build/modern/suspense.d.cts +1 -1
  24. package/build/modern/suspense.d.ts +1 -1
  25. package/build/modern/suspense.js +1 -1
  26. package/build/modern/suspense.js.map +1 -1
  27. package/build/modern/useBaseQuery.cjs +1 -1
  28. package/build/modern/useBaseQuery.cjs.map +1 -1
  29. package/build/modern/useBaseQuery.js +1 -1
  30. package/build/modern/useBaseQuery.js.map +1 -1
  31. package/build/modern/useQueries.cjs +2 -2
  32. package/build/modern/useQueries.cjs.map +1 -1
  33. package/build/modern/useQueries.d.cts +18 -2
  34. package/build/modern/useQueries.d.ts +18 -2
  35. package/build/modern/useQueries.js +2 -2
  36. package/build/modern/useQueries.js.map +1 -1
  37. package/build/modern/useSuspenseQueries.cjs.map +1 -1
  38. package/build/modern/useSuspenseQueries.js.map +1 -1
  39. package/package.json +2 -2
  40. package/src/__tests__/ssr.test.tsx +1 -5
  41. package/src/__tests__/suspense.test.tsx +48 -0
  42. package/src/__tests__/useInfiniteQuery.test.tsx +4 -4
  43. package/src/__tests__/useQuery.test.tsx +95 -0
  44. package/src/suspense.ts +1 -2
  45. package/src/useBaseQuery.ts +1 -1
  46. package/src/useQueries.ts +126 -100
  47. package/src/useSuspenseQueries.ts +119 -104
package/src/useQueries.ts CHANGED
@@ -57,68 +57,79 @@ type GetOptions<T> =
57
57
  }
58
58
  ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
59
59
  : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
60
- ? UseQueryOptionsForUseQueries<TQueryFnData, TError>
61
- : T extends { data: infer TData; error?: infer TError }
62
- ? UseQueryOptionsForUseQueries<unknown, TError, TData>
63
- : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
64
- T extends [infer TQueryFnData, infer TError, infer TData]
65
- ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
66
- : T extends [infer TQueryFnData, infer TError]
67
- ? UseQueryOptionsForUseQueries<TQueryFnData, TError>
68
- : T extends [infer TQueryFnData]
69
- ? UseQueryOptionsForUseQueries<TQueryFnData>
70
- : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
71
- T extends {
72
- queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
73
- select: (data: any) => infer TData
74
- throwOnError?: ThrowOnError<any, infer TError, any, any>
75
- }
76
- ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>
77
- : T extends {
78
- queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
79
- throwOnError?: ThrowOnError<any, infer TError, any, any>
80
- }
81
- ? UseQueryOptionsForUseQueries<
82
- TQueryFnData,
83
- TError,
84
- TQueryFnData,
85
- TQueryKey
86
- >
87
- : // Fallback
88
- UseQueryOptionsForUseQueries
60
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError>
61
+ : T extends { data: infer TData; error?: infer TError }
62
+ ? UseQueryOptionsForUseQueries<unknown, TError, TData>
63
+ : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
64
+ T extends [infer TQueryFnData, infer TError, infer TData]
65
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
66
+ : T extends [infer TQueryFnData, infer TError]
67
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError>
68
+ : T extends [infer TQueryFnData]
69
+ ? UseQueryOptionsForUseQueries<TQueryFnData>
70
+ : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
71
+ T extends {
72
+ queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
73
+ select: (data: any) => infer TData
74
+ throwOnError?: ThrowOnError<any, infer TError, any, any>
75
+ }
76
+ ? UseQueryOptionsForUseQueries<
77
+ TQueryFnData,
78
+ TError,
79
+ TData,
80
+ TQueryKey
81
+ >
82
+ : T extends {
83
+ queryFn?: QueryFunction<
84
+ infer TQueryFnData,
85
+ infer TQueryKey
86
+ >
87
+ throwOnError?: ThrowOnError<any, infer TError, any, any>
88
+ }
89
+ ? UseQueryOptionsForUseQueries<
90
+ TQueryFnData,
91
+ TError,
92
+ TQueryFnData,
93
+ TQueryKey
94
+ >
95
+ : // Fallback
96
+ UseQueryOptionsForUseQueries
89
97
 
90
98
  type GetResults<T> =
91
99
  // Part 1: responsible for mapping explicit type parameter to function result, if object
92
100
  T extends { queryFnData: any; error?: infer TError; data: infer TData }
93
101
  ? UseQueryResult<TData, TError>
94
102
  : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
95
- ? UseQueryResult<TQueryFnData, TError>
96
- : T extends { data: infer TData; error?: infer TError }
97
- ? UseQueryResult<TData, TError>
98
- : // Part 2: responsible for mapping explicit type parameter to function result, if tuple
99
- T extends [any, infer TError, infer TData]
100
- ? UseQueryResult<TData, TError>
101
- : T extends [infer TQueryFnData, infer TError]
102
- ? UseQueryResult<TQueryFnData, TError>
103
- : T extends [infer TQueryFnData]
104
- ? UseQueryResult<TQueryFnData>
105
- : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
106
- T extends {
107
- queryFn?: QueryFunction<unknown, any>
108
- select: (data: any) => infer TData
109
- throwOnError?: ThrowOnError<any, infer TError, any, any>
110
- }
111
- ? UseQueryResult<TData, unknown extends TError ? DefaultError : TError>
112
- : T extends {
113
- queryFn?: QueryFunction<infer TQueryFnData, any>
114
- throwOnError?: ThrowOnError<any, infer TError, any, any>
115
- }
116
- ? UseQueryResult<
117
- TQueryFnData,
118
- unknown extends TError ? DefaultError : TError
119
- >
120
- : // Fallback
121
- UseQueryResult
103
+ ? UseQueryResult<TQueryFnData, TError>
104
+ : T extends { data: infer TData; error?: infer TError }
105
+ ? UseQueryResult<TData, TError>
106
+ : // Part 2: responsible for mapping explicit type parameter to function result, if tuple
107
+ T extends [any, infer TError, infer TData]
108
+ ? UseQueryResult<TData, TError>
109
+ : T extends [infer TQueryFnData, infer TError]
110
+ ? UseQueryResult<TQueryFnData, TError>
111
+ : T extends [infer TQueryFnData]
112
+ ? UseQueryResult<TQueryFnData>
113
+ : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
114
+ T extends {
115
+ queryFn?: QueryFunction<unknown, any>
116
+ select: (data: any) => infer TData
117
+ throwOnError?: ThrowOnError<any, infer TError, any, any>
118
+ }
119
+ ? UseQueryResult<
120
+ TData,
121
+ unknown extends TError ? DefaultError : TError
122
+ >
123
+ : T extends {
124
+ queryFn?: QueryFunction<infer TQueryFnData, any>
125
+ throwOnError?: ThrowOnError<any, infer TError, any, any>
126
+ }
127
+ ? UseQueryResult<
128
+ TQueryFnData,
129
+ unknown extends TError ? DefaultError : TError
130
+ >
131
+ : // Fallback
132
+ UseQueryResult
122
133
 
123
134
  /**
124
135
  * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
@@ -130,26 +141,37 @@ export type QueriesOptions<
130
141
  > = Depth['length'] extends MAXIMUM_DEPTH
131
142
  ? Array<UseQueryOptionsForUseQueries>
132
143
  : T extends []
133
- ? []
134
- : T extends [infer Head]
135
- ? [...Result, GetOptions<Head>]
136
- : T extends [infer Head, ...infer Tail]
137
- ? QueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>
138
- : Array<unknown> extends T
139
- ? T
140
- : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
141
- // use this to infer the param types in the case of Array.map() argument
142
- T extends Array<
143
- UseQueryOptionsForUseQueries<
144
- infer TQueryFnData,
145
- infer TError,
146
- infer TData,
147
- infer TQueryKey
148
- >
149
- >
150
- ? Array<UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>>
151
- : // Fallback
152
- Array<UseQueryOptionsForUseQueries>
144
+ ? []
145
+ : T extends [infer Head]
146
+ ? [...Result, GetOptions<Head>]
147
+ : T extends [infer Head, ...infer Tail]
148
+ ? QueriesOptions<
149
+ [...Tail],
150
+ [...Result, GetOptions<Head>],
151
+ [...Depth, 1]
152
+ >
153
+ : Array<unknown> extends T
154
+ ? T
155
+ : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
156
+ // use this to infer the param types in the case of Array.map() argument
157
+ T extends Array<
158
+ UseQueryOptionsForUseQueries<
159
+ infer TQueryFnData,
160
+ infer TError,
161
+ infer TData,
162
+ infer TQueryKey
163
+ >
164
+ >
165
+ ? Array<
166
+ UseQueryOptionsForUseQueries<
167
+ TQueryFnData,
168
+ TError,
169
+ TData,
170
+ TQueryKey
171
+ >
172
+ >
173
+ : // Fallback
174
+ Array<UseQueryOptionsForUseQueries>
153
175
 
154
176
  /**
155
177
  * QueriesResults reducer recursively maps type param to results
@@ -161,28 +183,32 @@ export type QueriesResults<
161
183
  > = Depth['length'] extends MAXIMUM_DEPTH
162
184
  ? Array<UseQueryResult>
163
185
  : T extends []
164
- ? []
165
- : T extends [infer Head]
166
- ? [...Result, GetResults<Head>]
167
- : T extends [infer Head, ...infer Tail]
168
- ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>
169
- : T extends Array<
170
- UseQueryOptionsForUseQueries<
171
- infer TQueryFnData,
172
- infer TError,
173
- infer TData,
174
- any
175
- >
176
- >
177
- ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results
178
- Array<
179
- UseQueryResult<
180
- unknown extends TData ? TQueryFnData : TData,
181
- unknown extends TError ? DefaultError : TError
182
- >
183
- >
184
- : // Fallback
185
- Array<UseQueryResult>
186
+ ? []
187
+ : T extends [infer Head]
188
+ ? [...Result, GetResults<Head>]
189
+ : T extends [infer Head, ...infer Tail]
190
+ ? QueriesResults<
191
+ [...Tail],
192
+ [...Result, GetResults<Head>],
193
+ [...Depth, 1]
194
+ >
195
+ : T extends Array<
196
+ UseQueryOptionsForUseQueries<
197
+ infer TQueryFnData,
198
+ infer TError,
199
+ infer TData,
200
+ any
201
+ >
202
+ >
203
+ ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results
204
+ Array<
205
+ UseQueryResult<
206
+ unknown extends TData ? TQueryFnData : TData,
207
+ unknown extends TError ? DefaultError : TError
208
+ >
209
+ >
210
+ : // Fallback
211
+ Array<UseQueryResult>
186
212
 
187
213
  export function useQueries<
188
214
  T extends Array<any>,
@@ -260,7 +286,7 @@ export function useQueries<
260
286
  }, [defaultedQueries, options, observer])
261
287
 
262
288
  const shouldAtLeastOneSuspend = optimisticResult.some((result, index) =>
263
- shouldSuspend(defaultedQueries[index], result, isRestoring),
289
+ shouldSuspend(defaultedQueries[index], result),
264
290
  )
265
291
 
266
292
  const suspensePromises = shouldAtLeastOneSuspend
@@ -269,7 +295,7 @@ export function useQueries<
269
295
 
270
296
  if (opts) {
271
297
  const queryObserver = new QueryObserver(client, opts)
272
- if (shouldSuspend(opts, result, isRestoring)) {
298
+ if (shouldSuspend(opts, result)) {
273
299
  return fetchOptimistic(opts, queryObserver, errorResetBoundary)
274
300
  } else if (willFetch(result, isRestoring)) {
275
301
  void fetchOptimistic(opts, queryObserver, errorResetBoundary)
@@ -21,66 +21,79 @@ type GetSuspenseOptions<T> =
21
21
  }
22
22
  ? UseSuspenseQueryOptions<TQueryFnData, TError, TData>
23
23
  : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
24
- ? UseSuspenseQueryOptions<TQueryFnData, TError>
25
- : T extends { data: infer TData; error?: infer TError }
26
- ? UseSuspenseQueryOptions<unknown, TError, TData>
27
- : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
28
- T extends [infer TQueryFnData, infer TError, infer TData]
29
- ? UseSuspenseQueryOptions<TQueryFnData, TError, TData>
30
- : T extends [infer TQueryFnData, infer TError]
31
- ? UseSuspenseQueryOptions<TQueryFnData, TError>
32
- : T extends [infer TQueryFnData]
33
- ? UseSuspenseQueryOptions<TQueryFnData>
34
- : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
35
- T extends {
36
- queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
37
- select: (data: any) => infer TData
38
- throwOnError?: ThrowOnError<any, infer TError, any, any>
39
- }
40
- ? UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>
41
- : T extends {
42
- queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
43
- throwOnError?: ThrowOnError<any, infer TError, any, any>
44
- }
45
- ? UseSuspenseQueryOptions<TQueryFnData, TError, TQueryFnData, TQueryKey>
46
- : // Fallback
47
- UseSuspenseQueryOptions
24
+ ? UseSuspenseQueryOptions<TQueryFnData, TError>
25
+ : T extends { data: infer TData; error?: infer TError }
26
+ ? UseSuspenseQueryOptions<unknown, TError, TData>
27
+ : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
28
+ T extends [infer TQueryFnData, infer TError, infer TData]
29
+ ? UseSuspenseQueryOptions<TQueryFnData, TError, TData>
30
+ : T extends [infer TQueryFnData, infer TError]
31
+ ? UseSuspenseQueryOptions<TQueryFnData, TError>
32
+ : T extends [infer TQueryFnData]
33
+ ? UseSuspenseQueryOptions<TQueryFnData>
34
+ : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
35
+ T extends {
36
+ queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
37
+ select: (data: any) => infer TData
38
+ throwOnError?: ThrowOnError<any, infer TError, any, any>
39
+ }
40
+ ? UseSuspenseQueryOptions<
41
+ TQueryFnData,
42
+ TError,
43
+ TData,
44
+ TQueryKey
45
+ >
46
+ : T extends {
47
+ queryFn?: QueryFunction<
48
+ infer TQueryFnData,
49
+ infer TQueryKey
50
+ >
51
+ throwOnError?: ThrowOnError<any, infer TError, any, any>
52
+ }
53
+ ? UseSuspenseQueryOptions<
54
+ TQueryFnData,
55
+ TError,
56
+ TQueryFnData,
57
+ TQueryKey
58
+ >
59
+ : // Fallback
60
+ UseSuspenseQueryOptions
48
61
 
49
62
  type GetSuspenseResults<T> =
50
63
  // Part 1: responsible for mapping explicit type parameter to function result, if object
51
64
  T extends { queryFnData: any; error?: infer TError; data: infer TData }
52
65
  ? UseSuspenseQueryResult<TData, TError>
53
66
  : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
54
- ? UseSuspenseQueryResult<TQueryFnData, TError>
55
- : T extends { data: infer TData; error?: infer TError }
56
- ? UseSuspenseQueryResult<TData, TError>
57
- : // Part 2: responsible for mapping explicit type parameter to function result, if tuple
58
- T extends [any, infer TError, infer TData]
59
- ? UseSuspenseQueryResult<TData, TError>
60
- : T extends [infer TQueryFnData, infer TError]
61
- ? UseSuspenseQueryResult<TQueryFnData, TError>
62
- : T extends [infer TQueryFnData]
63
- ? UseSuspenseQueryResult<TQueryFnData>
64
- : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
65
- T extends {
66
- queryFn?: QueryFunction<unknown, any>
67
- select: (data: any) => infer TData
68
- throwOnError?: ThrowOnError<any, infer TError, any, any>
69
- }
70
- ? UseSuspenseQueryResult<
71
- TData,
72
- unknown extends TError ? DefaultError : TError
73
- >
74
- : T extends {
75
- queryFn?: QueryFunction<infer TQueryFnData, any>
76
- throwOnError?: ThrowOnError<any, infer TError, any, any>
77
- }
78
- ? UseSuspenseQueryResult<
79
- TQueryFnData,
80
- unknown extends TError ? DefaultError : TError
81
- >
82
- : // Fallback
83
- UseSuspenseQueryResult
67
+ ? UseSuspenseQueryResult<TQueryFnData, TError>
68
+ : T extends { data: infer TData; error?: infer TError }
69
+ ? UseSuspenseQueryResult<TData, TError>
70
+ : // Part 2: responsible for mapping explicit type parameter to function result, if tuple
71
+ T extends [any, infer TError, infer TData]
72
+ ? UseSuspenseQueryResult<TData, TError>
73
+ : T extends [infer TQueryFnData, infer TError]
74
+ ? UseSuspenseQueryResult<TQueryFnData, TError>
75
+ : T extends [infer TQueryFnData]
76
+ ? UseSuspenseQueryResult<TQueryFnData>
77
+ : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
78
+ T extends {
79
+ queryFn?: QueryFunction<unknown, any>
80
+ select: (data: any) => infer TData
81
+ throwOnError?: ThrowOnError<any, infer TError, any, any>
82
+ }
83
+ ? UseSuspenseQueryResult<
84
+ TData,
85
+ unknown extends TError ? DefaultError : TError
86
+ >
87
+ : T extends {
88
+ queryFn?: QueryFunction<infer TQueryFnData, any>
89
+ throwOnError?: ThrowOnError<any, infer TError, any, any>
90
+ }
91
+ ? UseSuspenseQueryResult<
92
+ TQueryFnData,
93
+ unknown extends TError ? DefaultError : TError
94
+ >
95
+ : // Fallback
96
+ UseSuspenseQueryResult
84
97
 
85
98
  /**
86
99
  * SuspenseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
@@ -92,30 +105,32 @@ export type SuspenseQueriesOptions<
92
105
  > = Depth['length'] extends MAXIMUM_DEPTH
93
106
  ? Array<UseSuspenseQueryOptions>
94
107
  : T extends []
95
- ? []
96
- : T extends [infer Head]
97
- ? [...Result, GetSuspenseOptions<Head>]
98
- : T extends [infer Head, ...infer Tail]
99
- ? SuspenseQueriesOptions<
100
- [...Tail],
101
- [...Result, GetSuspenseOptions<Head>],
102
- [...Depth, 1]
103
- >
104
- : Array<unknown> extends T
105
- ? T
106
- : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
107
- // use this to infer the param types in the case of Array.map() argument
108
- T extends Array<
109
- UseSuspenseQueryOptions<
110
- infer TQueryFnData,
111
- infer TError,
112
- infer TData,
113
- infer TQueryKey
114
- >
115
- >
116
- ? Array<UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>>
117
- : // Fallback
118
- Array<UseSuspenseQueryOptions>
108
+ ? []
109
+ : T extends [infer Head]
110
+ ? [...Result, GetSuspenseOptions<Head>]
111
+ : T extends [infer Head, ...infer Tail]
112
+ ? SuspenseQueriesOptions<
113
+ [...Tail],
114
+ [...Result, GetSuspenseOptions<Head>],
115
+ [...Depth, 1]
116
+ >
117
+ : Array<unknown> extends T
118
+ ? T
119
+ : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
120
+ // use this to infer the param types in the case of Array.map() argument
121
+ T extends Array<
122
+ UseSuspenseQueryOptions<
123
+ infer TQueryFnData,
124
+ infer TError,
125
+ infer TData,
126
+ infer TQueryKey
127
+ >
128
+ >
129
+ ? Array<
130
+ UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>
131
+ >
132
+ : // Fallback
133
+ Array<UseSuspenseQueryOptions>
119
134
 
120
135
  /**
121
136
  * SuspenseQueriesResults reducer recursively maps type param to results
@@ -127,32 +142,32 @@ export type SuspenseQueriesResults<
127
142
  > = Depth['length'] extends MAXIMUM_DEPTH
128
143
  ? Array<UseSuspenseQueryResult>
129
144
  : T extends []
130
- ? []
131
- : T extends [infer Head]
132
- ? [...Result, GetSuspenseResults<Head>]
133
- : T extends [infer Head, ...infer Tail]
134
- ? SuspenseQueriesResults<
135
- [...Tail],
136
- [...Result, GetSuspenseResults<Head>],
137
- [...Depth, 1]
138
- >
139
- : T extends Array<
140
- UseSuspenseQueryOptions<
141
- infer TQueryFnData,
142
- infer TError,
143
- infer TData,
144
- any
145
- >
146
- >
147
- ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results
148
- Array<
149
- UseSuspenseQueryResult<
150
- unknown extends TData ? TQueryFnData : TData,
151
- unknown extends TError ? DefaultError : TError
152
- >
153
- >
154
- : // Fallback
155
- Array<UseSuspenseQueryResult>
145
+ ? []
146
+ : T extends [infer Head]
147
+ ? [...Result, GetSuspenseResults<Head>]
148
+ : T extends [infer Head, ...infer Tail]
149
+ ? SuspenseQueriesResults<
150
+ [...Tail],
151
+ [...Result, GetSuspenseResults<Head>],
152
+ [...Depth, 1]
153
+ >
154
+ : T extends Array<
155
+ UseSuspenseQueryOptions<
156
+ infer TQueryFnData,
157
+ infer TError,
158
+ infer TData,
159
+ any
160
+ >
161
+ >
162
+ ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results
163
+ Array<
164
+ UseSuspenseQueryResult<
165
+ unknown extends TData ? TQueryFnData : TData,
166
+ unknown extends TError ? DefaultError : TError
167
+ >
168
+ >
169
+ : // Fallback
170
+ Array<UseSuspenseQueryResult>
156
171
 
157
172
  export function useSuspenseQueries<
158
173
  T extends Array<any>,