@tanstack/react-query 5.8.3 → 5.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.
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 +2 -1
  10. package/build/legacy/useBaseQuery.cjs.map +1 -1
  11. package/build/legacy/useBaseQuery.js +2 -1
  12. package/build/legacy/useBaseQuery.js.map +1 -1
  13. package/build/legacy/useQueries.cjs +9 -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 +9 -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 +2 -1
  28. package/build/modern/useBaseQuery.cjs.map +1 -1
  29. package/build/modern/useBaseQuery.js +2 -1
  30. package/build/modern/useBaseQuery.js.map +1 -1
  31. package/build/modern/useQueries.cjs +9 -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 +9 -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 +146 -0
  42. package/src/__tests__/useInfiniteQuery.test.tsx +4 -4
  43. package/src/__tests__/useQuery.test.tsx +0 -9
  44. package/src/suspense.ts +1 -2
  45. package/src/useBaseQuery.ts +5 -1
  46. package/src/useQueries.ts +133 -100
  47. package/src/useSuspenseQueries.ts +119 -104
@@ -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>,