@tanstack/query-core 4.24.10 → 5.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 (183) hide show
  1. package/build/lib/focusManager.d.ts +1 -3
  2. package/build/lib/focusManager.esm.js +19 -36
  3. package/build/lib/focusManager.esm.js.map +1 -1
  4. package/build/lib/focusManager.js +19 -38
  5. package/build/lib/focusManager.js.map +1 -1
  6. package/build/lib/focusManager.mjs +19 -36
  7. package/build/lib/focusManager.mjs.map +1 -1
  8. package/build/lib/hydration.esm.js +21 -23
  9. package/build/lib/hydration.esm.js.map +1 -1
  10. package/build/lib/hydration.js +21 -25
  11. package/build/lib/hydration.js.map +1 -1
  12. package/build/lib/hydration.mjs +21 -23
  13. package/build/lib/hydration.mjs.map +1 -1
  14. package/build/lib/index.d.ts +1 -2
  15. package/build/lib/index.esm.js +1 -1
  16. package/build/lib/index.js +2 -8
  17. package/build/lib/index.js.map +1 -1
  18. package/build/lib/index.mjs +1 -1
  19. package/build/lib/infiniteQueryBehavior.d.ts +3 -7
  20. package/build/lib/infiniteQueryBehavior.esm.js +52 -75
  21. package/build/lib/infiniteQueryBehavior.esm.js.map +1 -1
  22. package/build/lib/infiniteQueryBehavior.js +50 -77
  23. package/build/lib/infiniteQueryBehavior.js.map +1 -1
  24. package/build/lib/infiniteQueryBehavior.mjs +52 -75
  25. package/build/lib/infiniteQueryBehavior.mjs.map +1 -1
  26. package/build/lib/infiniteQueryObserver.d.ts +4 -4
  27. package/build/lib/infiniteQueryObserver.esm.js +18 -26
  28. package/build/lib/infiniteQueryObserver.esm.js.map +1 -1
  29. package/build/lib/infiniteQueryObserver.js +18 -28
  30. package/build/lib/infiniteQueryObserver.js.map +1 -1
  31. package/build/lib/infiniteQueryObserver.mjs +18 -26
  32. package/build/lib/infiniteQueryObserver.mjs.map +1 -1
  33. package/build/lib/mutation.d.ts +11 -22
  34. package/build/lib/mutation.esm.js +73 -105
  35. package/build/lib/mutation.esm.js.map +1 -1
  36. package/build/lib/mutation.js +73 -107
  37. package/build/lib/mutation.js.map +1 -1
  38. package/build/lib/mutation.mjs +73 -105
  39. package/build/lib/mutation.mjs.map +1 -1
  40. package/build/lib/mutationCache.d.ts +4 -6
  41. package/build/lib/mutationCache.esm.js +23 -32
  42. package/build/lib/mutationCache.esm.js.map +1 -1
  43. package/build/lib/mutationCache.js +23 -34
  44. package/build/lib/mutationCache.js.map +1 -1
  45. package/build/lib/mutationCache.mjs +23 -32
  46. package/build/lib/mutationCache.mjs.map +1 -1
  47. package/build/lib/mutationObserver.d.ts +4 -9
  48. package/build/lib/mutationObserver.esm.js +43 -72
  49. package/build/lib/mutationObserver.esm.js.map +1 -1
  50. package/build/lib/mutationObserver.js +43 -74
  51. package/build/lib/mutationObserver.js.map +1 -1
  52. package/build/lib/mutationObserver.mjs +43 -72
  53. package/build/lib/mutationObserver.mjs.map +1 -1
  54. package/build/lib/notifyManager.esm.js +7 -17
  55. package/build/lib/notifyManager.esm.js.map +1 -1
  56. package/build/lib/notifyManager.js +7 -19
  57. package/build/lib/notifyManager.js.map +1 -1
  58. package/build/lib/notifyManager.mjs +7 -17
  59. package/build/lib/notifyManager.mjs.map +1 -1
  60. package/build/lib/onlineManager.d.ts +1 -3
  61. package/build/lib/onlineManager.esm.js +16 -30
  62. package/build/lib/onlineManager.esm.js.map +1 -1
  63. package/build/lib/onlineManager.js +16 -32
  64. package/build/lib/onlineManager.js.map +1 -1
  65. package/build/lib/onlineManager.mjs +16 -30
  66. package/build/lib/onlineManager.mjs.map +1 -1
  67. package/build/lib/queriesObserver.d.ts +3 -10
  68. package/build/lib/queriesObserver.esm.js +47 -71
  69. package/build/lib/queriesObserver.esm.js.map +1 -1
  70. package/build/lib/queriesObserver.js +49 -75
  71. package/build/lib/queriesObserver.js.map +1 -1
  72. package/build/lib/queriesObserver.mjs +47 -71
  73. package/build/lib/queriesObserver.mjs.map +1 -1
  74. package/build/lib/query.d.ts +14 -21
  75. package/build/lib/query.esm.js +140 -194
  76. package/build/lib/query.esm.js.map +1 -1
  77. package/build/lib/query.js +139 -195
  78. package/build/lib/query.js.map +1 -1
  79. package/build/lib/query.mjs +140 -194
  80. package/build/lib/query.mjs.map +1 -1
  81. package/build/lib/queryCache.d.ts +12 -7
  82. package/build/lib/queryCache.esm.js +21 -45
  83. package/build/lib/queryCache.esm.js.map +1 -1
  84. package/build/lib/queryCache.js +20 -46
  85. package/build/lib/queryCache.js.map +1 -1
  86. package/build/lib/queryCache.mjs +21 -45
  87. package/build/lib/queryCache.mjs.map +1 -1
  88. package/build/lib/queryClient.d.ts +18 -46
  89. package/build/lib/queryClient.esm.js +137 -216
  90. package/build/lib/queryClient.esm.js.map +1 -1
  91. package/build/lib/queryClient.js +136 -217
  92. package/build/lib/queryClient.js.map +1 -1
  93. package/build/lib/queryClient.mjs +137 -216
  94. package/build/lib/queryClient.mjs.map +1 -1
  95. package/build/lib/queryObserver.d.ts +4 -29
  96. package/build/lib/queryObserver.esm.js +176 -258
  97. package/build/lib/queryObserver.esm.js.map +1 -1
  98. package/build/lib/queryObserver.js +176 -260
  99. package/build/lib/queryObserver.js.map +1 -1
  100. package/build/lib/queryObserver.mjs +176 -258
  101. package/build/lib/queryObserver.mjs.map +1 -1
  102. package/build/lib/removable.d.ts +3 -3
  103. package/build/lib/removable.esm.js +10 -14
  104. package/build/lib/removable.esm.js.map +1 -1
  105. package/build/lib/removable.js +10 -16
  106. package/build/lib/removable.js.map +1 -1
  107. package/build/lib/removable.mjs +10 -14
  108. package/build/lib/removable.mjs.map +1 -1
  109. package/build/lib/retryer.d.ts +5 -5
  110. package/build/lib/retryer.esm.js +27 -44
  111. package/build/lib/retryer.esm.js.map +1 -1
  112. package/build/lib/retryer.js +27 -46
  113. package/build/lib/retryer.js.map +1 -1
  114. package/build/lib/retryer.mjs +27 -44
  115. package/build/lib/retryer.mjs.map +1 -1
  116. package/build/lib/subscribable.esm.js +4 -7
  117. package/build/lib/subscribable.esm.js.map +1 -1
  118. package/build/lib/subscribable.js +4 -9
  119. package/build/lib/subscribable.js.map +1 -1
  120. package/build/lib/subscribable.mjs +4 -7
  121. package/build/lib/subscribable.mjs.map +1 -1
  122. package/build/lib/tests/utils.d.ts +3 -12
  123. package/build/lib/types.d.ts +111 -99
  124. package/build/lib/utils.d.ts +8 -18
  125. package/build/lib/utils.esm.js +39 -132
  126. package/build/lib/utils.esm.js.map +1 -1
  127. package/build/lib/utils.js +42 -144
  128. package/build/lib/utils.js.map +1 -1
  129. package/build/lib/utils.mjs +39 -132
  130. package/build/lib/utils.mjs.map +1 -1
  131. package/build/umd/index.development.js +868 -1398
  132. package/build/umd/index.development.js.map +1 -1
  133. package/build/umd/index.production.js +1 -1
  134. package/build/umd/index.production.js.map +1 -1
  135. package/package.json +1 -1
  136. package/src/focusManager.ts +17 -24
  137. package/src/index.ts +1 -11
  138. package/src/infiniteQueryBehavior.ts +54 -94
  139. package/src/infiniteQueryObserver.ts +10 -12
  140. package/src/mutation.ts +68 -92
  141. package/src/mutationCache.ts +27 -27
  142. package/src/mutationObserver.ts +60 -97
  143. package/src/onlineManager.ts +14 -14
  144. package/src/queriesObserver.ts +50 -54
  145. package/src/query.ts +106 -110
  146. package/src/queryCache.ts +42 -41
  147. package/src/queryClient.ts +155 -434
  148. package/src/queryObserver.ts +155 -192
  149. package/src/removable.ts +13 -13
  150. package/src/retryer.ts +5 -5
  151. package/src/tests/focusManager.test.tsx +25 -25
  152. package/src/tests/hydration.test.tsx +167 -81
  153. package/src/tests/infiniteQueryBehavior.test.tsx +209 -17
  154. package/src/tests/infiniteQueryObserver.test.tsx +6 -2
  155. package/src/tests/mutationCache.test.tsx +127 -127
  156. package/src/tests/mutationObserver.test.tsx +1 -31
  157. package/src/tests/mutations.test.tsx +62 -43
  158. package/src/tests/onlineManager.test.tsx +12 -4
  159. package/src/tests/queriesObserver.test.tsx +41 -77
  160. package/src/tests/query.test.tsx +175 -243
  161. package/src/tests/queryCache.test.tsx +170 -93
  162. package/src/tests/queryClient.test.tsx +229 -378
  163. package/src/tests/queryObserver.test.tsx +23 -147
  164. package/src/tests/utils.test.tsx +84 -29
  165. package/src/tests/utils.ts +9 -18
  166. package/src/types.ts +187 -140
  167. package/src/utils.ts +31 -124
  168. package/build/lib/logger.d.ts +0 -8
  169. package/build/lib/logger.esm.js +0 -4
  170. package/build/lib/logger.esm.js.map +0 -1
  171. package/build/lib/logger.js +0 -8
  172. package/build/lib/logger.js.map +0 -1
  173. package/build/lib/logger.mjs +0 -4
  174. package/build/lib/logger.mjs.map +0 -1
  175. package/build/lib/logger.native.d.ts +0 -6
  176. package/build/lib/logger.native.esm.js +0 -12
  177. package/build/lib/logger.native.esm.js.map +0 -1
  178. package/build/lib/logger.native.js +0 -16
  179. package/build/lib/logger.native.js.map +0 -1
  180. package/build/lib/logger.native.mjs +0 -12
  181. package/build/lib/logger.native.mjs.map +0 -1
  182. package/src/logger.native.ts +0 -11
  183. package/src/logger.ts +0 -9
package/src/types.ts CHANGED
@@ -6,42 +6,66 @@ import type { RetryValue, RetryDelayValue } from './retryer'
6
6
  import type { QueryFilters, QueryTypeFilter } from './utils'
7
7
  import type { QueryCache } from './queryCache'
8
8
  import type { MutationCache } from './mutationCache'
9
- import type { Logger } from './logger'
9
+
10
+ export interface Register {
11
+ // defaultError: Error
12
+ }
13
+
14
+ export type RegisteredError = Register extends {
15
+ defaultError: infer TError
16
+ }
17
+ ? TError
18
+ : Error
10
19
 
11
20
  export type QueryKey = readonly unknown[]
12
21
 
13
22
  export type QueryFunction<
14
23
  T = unknown,
15
24
  TQueryKey extends QueryKey = QueryKey,
16
- > = (context: QueryFunctionContext<TQueryKey>) => T | Promise<T>
25
+ TPageParam = never,
26
+ > = (context: QueryFunctionContext<TQueryKey, TPageParam>) => T | Promise<T>
17
27
 
18
- export interface QueryFunctionContext<
28
+ export type QueryFunctionContext<
19
29
  TQueryKey extends QueryKey = QueryKey,
20
- TPageParam = any,
21
- > {
22
- queryKey: TQueryKey
23
- signal?: AbortSignal
24
- pageParam?: TPageParam
25
- meta: QueryMeta | undefined
26
- }
30
+ TPageParam = never,
31
+ > = [TPageParam] extends [never]
32
+ ? {
33
+ queryKey: TQueryKey
34
+ signal: AbortSignal
35
+ meta: QueryMeta | undefined
36
+ }
37
+ : {
38
+ queryKey: TQueryKey
39
+ signal: AbortSignal
40
+ pageParam: TPageParam
41
+ meta: QueryMeta | undefined
42
+ }
27
43
 
28
44
  export type InitialDataFunction<T> = () => T | undefined
29
45
 
30
- export type PlaceholderDataFunction<TResult> = () => TResult | undefined
46
+ type NonFunctionGuard<T> = T extends Function ? never : T
47
+
48
+ export type PlaceholderDataFunction<TQueryData> = (
49
+ previousData: TQueryData | undefined,
50
+ ) => TQueryData | undefined
51
+
52
+ export type QueriesPlaceholderDataFunction<TQueryData> = () =>
53
+ | TQueryData
54
+ | undefined
31
55
 
32
56
  export type QueryKeyHashFunction<TQueryKey extends QueryKey> = (
33
57
  queryKey: TQueryKey,
34
58
  ) => string
35
59
 
36
- export type GetPreviousPageParamFunction<TQueryFnData = unknown> = (
60
+ export type GetPreviousPageParamFunction<TPageParam, TQueryFnData = unknown> = (
37
61
  firstPage: TQueryFnData,
38
62
  allPages: TQueryFnData[],
39
- ) => unknown
63
+ ) => TPageParam | undefined
40
64
 
41
- export type GetNextPageParamFunction<TQueryFnData = unknown> = (
65
+ export type GetNextPageParamFunction<TPageParam, TQueryFnData = unknown> = (
42
66
  lastPage: TQueryFnData,
43
67
  allPages: TQueryFnData[],
44
- ) => unknown
68
+ ) => TPageParam | undefined
45
69
 
46
70
  export interface InfiniteData<TData> {
47
71
  pages: TData[]
@@ -56,9 +80,10 @@ export type NetworkMode = 'online' | 'always' | 'offlineFirst'
56
80
 
57
81
  export interface QueryOptions<
58
82
  TQueryFnData = unknown,
59
- TError = unknown,
83
+ TError = RegisteredError,
60
84
  TData = TQueryFnData,
61
85
  TQueryKey extends QueryKey = QueryKey,
86
+ TPageParam = never,
62
87
  > {
63
88
  /**
64
89
  * If `false`, failed queries will not retry by default.
@@ -69,15 +94,14 @@ export interface QueryOptions<
69
94
  retry?: RetryValue<TError>
70
95
  retryDelay?: RetryDelayValue<TError>
71
96
  networkMode?: NetworkMode
72
- cacheTime?: number
73
- isDataEqual?: (oldData: TData | undefined, newData: TData) => boolean
74
- queryFn?: QueryFunction<TQueryFnData, TQueryKey>
97
+ gcTime?: number
98
+ queryFn?: QueryFunction<TQueryFnData, TQueryKey, TPageParam>
75
99
  queryHash?: string
76
100
  queryKey?: TQueryKey
77
101
  queryKeyHashFn?: QueryKeyHashFunction<TQueryKey>
78
102
  initialData?: TData | InitialDataFunction<TData>
79
103
  initialDataUpdatedAt?: number | (() => number | undefined)
80
- behavior?: QueryBehavior<TQueryFnData, TError, TData>
104
+ behavior?: QueryBehavior<TQueryFnData, TError, TData, TQueryKey>
81
105
  /**
82
106
  * Set this to `false` to disable structural sharing between query results.
83
107
  * Set this to a function which accepts the old and new data and returns resolved data of the same type to implement custom structural sharing logic.
@@ -86,25 +110,39 @@ export interface QueryOptions<
86
110
  structuralSharing?:
87
111
  | boolean
88
112
  | ((oldData: TData | undefined, newData: TData) => TData)
113
+ _defaulted?: boolean
114
+ /**
115
+ * Additional payload to be stored on each query.
116
+ * Use this property to pass information that can be used in other places.
117
+ */
118
+ meta?: QueryMeta
119
+ /**
120
+ * Maximum number of pages to store in the data of an infinite query.
121
+ */
122
+ maxPages?: number
123
+ }
124
+
125
+ export interface DefaultPageParam<TPageParam = unknown> {
126
+ defaultPageParam: TPageParam
127
+ }
128
+
129
+ export interface InfiniteQueryPageParamsOptions<
130
+ TQueryFnData = unknown,
131
+ TPageParam = unknown,
132
+ > extends DefaultPageParam<TPageParam> {
89
133
  /**
90
134
  * This function can be set to automatically get the previous cursor for infinite queries.
91
135
  * The result will also be used to determine the value of `hasPreviousPage`.
92
136
  */
93
- getPreviousPageParam?: GetPreviousPageParamFunction<TQueryFnData>
137
+ getPreviousPageParam?: GetPreviousPageParamFunction<TPageParam, TQueryFnData>
94
138
  /**
95
139
  * This function can be set to automatically get the next cursor for infinite queries.
96
140
  * The result will also be used to determine the value of `hasNextPage`.
97
141
  */
98
- getNextPageParam?: GetNextPageParamFunction<TQueryFnData>
99
- _defaulted?: boolean
100
- /**
101
- * Additional payload to be stored on each query.
102
- * Use this property to pass information that can be used in other places.
103
- */
104
- meta?: QueryMeta
142
+ getNextPageParam: GetNextPageParamFunction<TPageParam, TQueryFnData>
105
143
  }
106
144
 
107
- export type UseErrorBoundary<
145
+ export type ThrowErrors<
108
146
  TQueryFnData,
109
147
  TError,
110
148
  TQueryData,
@@ -118,11 +156,18 @@ export type UseErrorBoundary<
118
156
 
119
157
  export interface QueryObserverOptions<
120
158
  TQueryFnData = unknown,
121
- TError = unknown,
159
+ TError = RegisteredError,
122
160
  TData = TQueryFnData,
123
161
  TQueryData = TQueryFnData,
124
162
  TQueryKey extends QueryKey = QueryKey,
125
- > extends QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey> {
163
+ TPageParam = never,
164
+ > extends QueryOptions<
165
+ TQueryFnData,
166
+ TError,
167
+ TQueryData,
168
+ TQueryKey,
169
+ TPageParam
170
+ > {
126
171
  /**
127
172
  * Set this to `false` to disable automatic refetching when the query mounts or changes query keys.
128
173
  * To refetch the query, use the `refetch` method returned from the `useQuery` instance.
@@ -221,31 +266,23 @@ export interface QueryObserverOptions<
221
266
  * If set to a function, it will be passed the error and the query, and it should return a boolean indicating whether to show the error in an error boundary (`true`) or return the error as state (`false`).
222
267
  * Defaults to `false`.
223
268
  */
224
- useErrorBoundary?: UseErrorBoundary<
225
- TQueryFnData,
226
- TError,
227
- TQueryData,
228
- TQueryKey
229
- >
269
+ throwErrors?: ThrowErrors<TQueryFnData, TError, TQueryData, TQueryKey>
230
270
  /**
231
271
  * This option can be used to transform or select a part of the data returned by the query function.
232
272
  */
233
273
  select?: (data: TQueryData) => TData
234
274
  /**
235
- * If set to `true`, the query will suspend when `status === 'loading'`
275
+ * If set to `true`, the query will suspend when `status === 'pending'`
236
276
  * and throw errors when `status === 'error'`.
237
277
  * Defaults to `false`.
238
278
  */
239
279
  suspense?: boolean
240
- /**
241
- * Set this to `true` to keep the previous `data` when fetching based on a new query key.
242
- * Defaults to `false`.
243
- */
244
- keepPreviousData?: boolean
245
280
  /**
246
281
  * If set, this value will be used as the placeholder data for this particular query observer while the query is still in the `loading` data and no initialData has been provided.
247
282
  */
248
- placeholderData?: TQueryData | PlaceholderDataFunction<TQueryData>
283
+ placeholderData?:
284
+ | NonFunctionGuard<TQueryData>
285
+ | PlaceholderDataFunction<NonFunctionGuard<TQueryData>>
249
286
 
250
287
  _optimisticResults?: 'optimistic' | 'isRestoring'
251
288
  }
@@ -254,32 +291,35 @@ export type WithRequired<T, K extends keyof T> = Omit<T, K> &
254
291
  Required<Pick<T, K>>
255
292
  export type DefaultedQueryObserverOptions<
256
293
  TQueryFnData = unknown,
257
- TError = unknown,
294
+ TError = RegisteredError,
258
295
  TData = TQueryFnData,
259
296
  TQueryData = TQueryFnData,
260
297
  TQueryKey extends QueryKey = QueryKey,
261
298
  > = WithRequired<
262
299
  QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>,
263
- 'useErrorBoundary' | 'refetchOnReconnect'
300
+ 'throwErrors' | 'refetchOnReconnect'
264
301
  >
265
302
 
266
303
  export interface InfiniteQueryObserverOptions<
267
304
  TQueryFnData = unknown,
268
- TError = unknown,
305
+ TError = RegisteredError,
269
306
  TData = TQueryFnData,
270
307
  TQueryData = TQueryFnData,
271
308
  TQueryKey extends QueryKey = QueryKey,
309
+ TPageParam = unknown,
272
310
  > extends QueryObserverOptions<
273
- TQueryFnData,
274
- TError,
275
- InfiniteData<TData>,
276
- InfiniteData<TQueryData>,
277
- TQueryKey
278
- > {}
311
+ TQueryFnData,
312
+ TError,
313
+ TData,
314
+ InfiniteData<TQueryData>,
315
+ TQueryKey,
316
+ TPageParam
317
+ >,
318
+ InfiniteQueryPageParamsOptions<TQueryFnData, TPageParam> {}
279
319
 
280
320
  export type DefaultedInfiniteQueryObserverOptions<
281
321
  TQueryFnData = unknown,
282
- TError = unknown,
322
+ TError = RegisteredError,
283
323
  TData = TQueryFnData,
284
324
  TQueryData = TQueryFnData,
285
325
  TQueryKey extends QueryKey = QueryKey,
@@ -291,15 +331,19 @@ export type DefaultedInfiniteQueryObserverOptions<
291
331
  TQueryData,
292
332
  TQueryKey
293
333
  >,
294
- 'useErrorBoundary' | 'refetchOnReconnect'
334
+ 'throwErrors' | 'refetchOnReconnect'
295
335
  >
296
336
 
297
337
  export interface FetchQueryOptions<
298
338
  TQueryFnData = unknown,
299
- TError = unknown,
339
+ TError = RegisteredError,
300
340
  TData = TQueryFnData,
301
341
  TQueryKey extends QueryKey = QueryKey,
302
- > extends QueryOptions<TQueryFnData, TError, TData, TQueryKey> {
342
+ TPageParam = never,
343
+ > extends WithRequired<
344
+ QueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>,
345
+ 'queryKey'
346
+ > {
303
347
  /**
304
348
  * The time in milliseconds after data is considered stale.
305
349
  * If the data is fresh it will be returned from the cache.
@@ -309,63 +353,51 @@ export interface FetchQueryOptions<
309
353
 
310
354
  export interface FetchInfiniteQueryOptions<
311
355
  TQueryFnData = unknown,
312
- TError = unknown,
356
+ TError = RegisteredError,
313
357
  TData = TQueryFnData,
314
358
  TQueryKey extends QueryKey = QueryKey,
359
+ TPageParam = unknown,
315
360
  > extends FetchQueryOptions<
316
- TQueryFnData,
317
- TError,
318
- InfiniteData<TData>,
319
- TQueryKey
320
- > {}
361
+ TQueryFnData,
362
+ TError,
363
+ InfiniteData<TData>,
364
+ TQueryKey,
365
+ TPageParam
366
+ >,
367
+ DefaultPageParam<TPageParam> {}
321
368
 
322
369
  export interface ResultOptions {
323
370
  throwOnError?: boolean
324
371
  }
325
372
 
326
- export interface RefetchPageFilters<TPageData = unknown> {
327
- refetchPage?: (
328
- lastPage: TPageData,
329
- index: number,
330
- allPages: TPageData[],
331
- ) => boolean
332
- }
333
-
334
373
  export interface RefetchOptions extends ResultOptions {
335
374
  cancelRefetch?: boolean
336
375
  }
337
376
 
338
- export interface InvalidateQueryFilters<TPageData = unknown>
339
- extends QueryFilters,
340
- RefetchPageFilters<TPageData> {
377
+ export interface InvalidateQueryFilters extends QueryFilters {
341
378
  refetchType?: QueryTypeFilter | 'none'
342
379
  }
343
380
 
344
- export interface RefetchQueryFilters<TPageData = unknown>
345
- extends QueryFilters,
346
- RefetchPageFilters<TPageData> {}
347
-
348
- export interface ResetQueryFilters<TPageData = unknown>
349
- extends QueryFilters,
350
- RefetchPageFilters<TPageData> {}
381
+ export interface RefetchQueryFilters extends QueryFilters {}
351
382
 
352
383
  export interface InvalidateOptions extends RefetchOptions {}
353
384
  export interface ResetOptions extends RefetchOptions {}
354
385
 
355
386
  export interface FetchNextPageOptions extends ResultOptions {
356
387
  cancelRefetch?: boolean
357
- pageParam?: unknown
358
388
  }
359
389
 
360
390
  export interface FetchPreviousPageOptions extends ResultOptions {
361
391
  cancelRefetch?: boolean
362
- pageParam?: unknown
363
392
  }
364
393
 
365
- export type QueryStatus = 'loading' | 'error' | 'success'
394
+ export type QueryStatus = 'pending' | 'error' | 'success'
366
395
  export type FetchStatus = 'fetching' | 'paused' | 'idle'
367
396
 
368
- export interface QueryObserverBaseResult<TData = unknown, TError = unknown> {
397
+ export interface QueryObserverBaseResult<
398
+ TData = unknown,
399
+ TError = RegisteredError,
400
+ > {
369
401
  data: TData | undefined
370
402
  dataUpdatedAt: number
371
403
  error: TError | null
@@ -378,43 +410,48 @@ export interface QueryObserverBaseResult<TData = unknown, TError = unknown> {
378
410
  isFetchedAfterMount: boolean
379
411
  isFetching: boolean
380
412
  isLoading: boolean
413
+ isPending: boolean
381
414
  isLoadingError: boolean
415
+ /**
416
+ * @deprecated isInitialLoading is being deprecated in favor of isLoading
417
+ * and will be removed in the next major version.
418
+ */
382
419
  isInitialLoading: boolean
383
420
  isPaused: boolean
384
421
  isPlaceholderData: boolean
385
- isPreviousData: boolean
386
422
  isRefetchError: boolean
387
423
  isRefetching: boolean
388
424
  isStale: boolean
389
425
  isSuccess: boolean
390
- refetch: <TPageData>(
391
- options?: RefetchOptions & RefetchQueryFilters<TPageData>,
426
+ refetch: (
427
+ options?: RefetchOptions,
392
428
  ) => Promise<QueryObserverResult<TData, TError>>
393
- remove: () => void
394
429
  status: QueryStatus
395
430
  fetchStatus: FetchStatus
396
431
  }
397
432
 
398
- export interface QueryObserverLoadingResult<TData = unknown, TError = unknown>
399
- extends QueryObserverBaseResult<TData, TError> {
433
+ export interface QueryObserverLoadingResult<
434
+ TData = unknown,
435
+ TError = RegisteredError,
436
+ > extends QueryObserverBaseResult<TData, TError> {
400
437
  data: undefined
401
438
  error: null
402
439
  isError: false
403
- isLoading: true
440
+ isPending: true
404
441
  isLoadingError: false
405
442
  isRefetchError: false
406
443
  isSuccess: false
407
- status: 'loading'
444
+ status: 'pending'
408
445
  }
409
446
 
410
447
  export interface QueryObserverLoadingErrorResult<
411
448
  TData = unknown,
412
- TError = unknown,
449
+ TError = RegisteredError,
413
450
  > extends QueryObserverBaseResult<TData, TError> {
414
451
  data: undefined
415
452
  error: TError
416
453
  isError: true
417
- isLoading: false
454
+ isPending: false
418
455
  isLoadingError: true
419
456
  isRefetchError: false
420
457
  isSuccess: false
@@ -423,77 +460,82 @@ export interface QueryObserverLoadingErrorResult<
423
460
 
424
461
  export interface QueryObserverRefetchErrorResult<
425
462
  TData = unknown,
426
- TError = unknown,
463
+ TError = RegisteredError,
427
464
  > extends QueryObserverBaseResult<TData, TError> {
428
465
  data: TData
429
466
  error: TError
430
467
  isError: true
431
- isLoading: false
468
+ isPending: false
432
469
  isLoadingError: false
433
470
  isRefetchError: true
434
471
  isSuccess: false
435
472
  status: 'error'
436
473
  }
437
474
 
438
- export interface QueryObserverSuccessResult<TData = unknown, TError = unknown>
439
- extends QueryObserverBaseResult<TData, TError> {
475
+ export interface QueryObserverSuccessResult<
476
+ TData = unknown,
477
+ TError = RegisteredError,
478
+ > extends QueryObserverBaseResult<TData, TError> {
440
479
  data: TData
441
480
  error: null
442
481
  isError: false
443
- isLoading: false
482
+ isPending: false
444
483
  isLoadingError: false
445
484
  isRefetchError: false
446
485
  isSuccess: true
447
486
  status: 'success'
448
487
  }
449
488
 
450
- export type DefinedQueryObserverResult<TData = unknown, TError = unknown> =
489
+ export type DefinedQueryObserverResult<
490
+ TData = unknown,
491
+ TError = RegisteredError,
492
+ > =
451
493
  | QueryObserverRefetchErrorResult<TData, TError>
452
494
  | QueryObserverSuccessResult<TData, TError>
453
495
 
454
- export type QueryObserverResult<TData = unknown, TError = unknown> =
496
+ export type QueryObserverResult<TData = unknown, TError = RegisteredError> =
455
497
  | DefinedQueryObserverResult<TData, TError>
456
498
  | QueryObserverLoadingErrorResult<TData, TError>
457
499
  | QueryObserverLoadingResult<TData, TError>
458
500
 
459
501
  export interface InfiniteQueryObserverBaseResult<
460
502
  TData = unknown,
461
- TError = unknown,
462
- > extends QueryObserverBaseResult<InfiniteData<TData>, TError> {
503
+ TError = RegisteredError,
504
+ > extends QueryObserverBaseResult<TData, TError> {
463
505
  fetchNextPage: (
464
506
  options?: FetchNextPageOptions,
465
507
  ) => Promise<InfiniteQueryObserverResult<TData, TError>>
466
508
  fetchPreviousPage: (
467
509
  options?: FetchPreviousPageOptions,
468
510
  ) => Promise<InfiniteQueryObserverResult<TData, TError>>
469
- hasNextPage?: boolean
470
- hasPreviousPage?: boolean
511
+ hasNextPage: boolean
512
+ hasPreviousPage: boolean
471
513
  isFetchingNextPage: boolean
472
514
  isFetchingPreviousPage: boolean
473
515
  }
474
516
 
475
517
  export interface InfiniteQueryObserverLoadingResult<
476
518
  TData = unknown,
477
- TError = unknown,
519
+ TError = RegisteredError,
478
520
  > extends InfiniteQueryObserverBaseResult<TData, TError> {
479
521
  data: undefined
480
522
  error: null
481
523
  isError: false
482
- isLoading: true
524
+ isPending: true
483
525
  isLoadingError: false
484
526
  isRefetchError: false
485
527
  isSuccess: false
486
- status: 'loading'
528
+ status: 'pending'
487
529
  }
488
530
 
489
531
  export interface InfiniteQueryObserverLoadingErrorResult<
490
532
  TData = unknown,
491
- TError = unknown,
533
+ TError = RegisteredError,
492
534
  > extends InfiniteQueryObserverBaseResult<TData, TError> {
493
535
  data: undefined
494
536
  error: TError
495
537
  isError: true
496
- isLoading: false
538
+ isPending: false
497
539
  isLoadingError: true
498
540
  isRefetchError: false
499
541
  isSuccess: false
@@ -502,12 +544,12 @@ export interface InfiniteQueryObserverLoadingErrorResult<
502
544
 
503
545
  export interface InfiniteQueryObserverRefetchErrorResult<
504
546
  TData = unknown,
505
- TError = unknown,
547
+ TError = RegisteredError,
506
548
  > extends InfiniteQueryObserverBaseResult<TData, TError> {
507
- data: InfiniteData<TData>
549
+ data: TData
508
550
  error: TError
509
551
  isError: true
510
- isLoading: false
552
+ isPending: false
511
553
  isLoadingError: false
512
554
  isRefetchError: true
513
555
  isSuccess: false
@@ -516,19 +558,22 @@ export interface InfiniteQueryObserverRefetchErrorResult<
516
558
 
517
559
  export interface InfiniteQueryObserverSuccessResult<
518
560
  TData = unknown,
519
- TError = unknown,
561
+ TError = RegisteredError,
520
562
  > extends InfiniteQueryObserverBaseResult<TData, TError> {
521
- data: InfiniteData<TData>
563
+ data: TData
522
564
  error: null
523
565
  isError: false
524
- isLoading: false
566
+ isPending: false
525
567
  isLoadingError: false
526
568
  isRefetchError: false
527
569
  isSuccess: true
528
570
  status: 'success'
529
571
  }
530
572
 
531
- export type InfiniteQueryObserverResult<TData = unknown, TError = unknown> =
573
+ export type InfiniteQueryObserverResult<
574
+ TData = unknown,
575
+ TError = RegisteredError,
576
+ > =
532
577
  | InfiniteQueryObserverLoadingErrorResult<TData, TError>
533
578
  | InfiniteQueryObserverLoadingResult<TData, TError>
534
579
  | InfiniteQueryObserverRefetchErrorResult<TData, TError>
@@ -536,7 +581,7 @@ export type InfiniteQueryObserverResult<TData = unknown, TError = unknown> =
536
581
 
537
582
  export type MutationKey = readonly unknown[]
538
583
 
539
- export type MutationStatus = 'idle' | 'loading' | 'success' | 'error'
584
+ export type MutationStatus = 'idle' | 'pending' | 'success' | 'error'
540
585
 
541
586
  export interface MutationMeta {
542
587
  [index: string]: unknown
@@ -548,13 +593,12 @@ export type MutationFunction<TData = unknown, TVariables = unknown> = (
548
593
 
549
594
  export interface MutationOptions<
550
595
  TData = unknown,
551
- TError = unknown,
596
+ TError = RegisteredError,
552
597
  TVariables = void,
553
598
  TContext = unknown,
554
599
  > {
555
600
  mutationFn?: MutationFunction<TData, TVariables>
556
601
  mutationKey?: MutationKey
557
- variables?: TVariables
558
602
  onMutate?: (
559
603
  variables: TVariables,
560
604
  ) => Promise<TContext | undefined> | TContext | undefined
@@ -577,23 +621,23 @@ export interface MutationOptions<
577
621
  retry?: RetryValue<TError>
578
622
  retryDelay?: RetryDelayValue<TError>
579
623
  networkMode?: NetworkMode
580
- cacheTime?: number
624
+ gcTime?: number
581
625
  _defaulted?: boolean
582
626
  meta?: MutationMeta
583
627
  }
584
628
 
585
629
  export interface MutationObserverOptions<
586
630
  TData = unknown,
587
- TError = unknown,
631
+ TError = RegisteredError,
588
632
  TVariables = void,
589
633
  TContext = unknown,
590
634
  > extends MutationOptions<TData, TError, TVariables, TContext> {
591
- useErrorBoundary?: boolean | ((error: TError) => boolean)
635
+ throwErrors?: boolean | ((error: TError) => boolean)
592
636
  }
593
637
 
594
638
  export interface MutateOptions<
595
639
  TData = unknown,
596
- TError = unknown,
640
+ TError = RegisteredError,
597
641
  TVariables = void,
598
642
  TContext = unknown,
599
643
  > {
@@ -613,7 +657,7 @@ export interface MutateOptions<
613
657
 
614
658
  export type MutateFunction<
615
659
  TData = unknown,
616
- TError = unknown,
660
+ TError = RegisteredError,
617
661
  TVariables = void,
618
662
  TContext = unknown,
619
663
  > = (
@@ -623,13 +667,13 @@ export type MutateFunction<
623
667
 
624
668
  export interface MutationObserverBaseResult<
625
669
  TData = unknown,
626
- TError = unknown,
670
+ TError = RegisteredError,
627
671
  TVariables = void,
628
672
  TContext = unknown,
629
673
  > extends MutationState<TData, TError, TVariables, TContext> {
630
674
  isError: boolean
631
675
  isIdle: boolean
632
- isLoading: boolean
676
+ isPending: boolean
633
677
  isSuccess: boolean
634
678
  mutate: MutateFunction<TData, TError, TVariables, TContext>
635
679
  reset: () => void
@@ -637,67 +681,71 @@ export interface MutationObserverBaseResult<
637
681
 
638
682
  export interface MutationObserverIdleResult<
639
683
  TData = unknown,
640
- TError = unknown,
684
+ TError = RegisteredError,
641
685
  TVariables = void,
642
686
  TContext = unknown,
643
687
  > extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
644
688
  data: undefined
689
+ variables: undefined
645
690
  error: null
646
691
  isError: false
647
692
  isIdle: true
648
- isLoading: false
693
+ isPending: false
649
694
  isSuccess: false
650
695
  status: 'idle'
651
696
  }
652
697
 
653
698
  export interface MutationObserverLoadingResult<
654
699
  TData = unknown,
655
- TError = unknown,
700
+ TError = RegisteredError,
656
701
  TVariables = void,
657
702
  TContext = unknown,
658
703
  > extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
659
704
  data: undefined
705
+ variables: TVariables
660
706
  error: null
661
707
  isError: false
662
708
  isIdle: false
663
- isLoading: true
709
+ isPending: true
664
710
  isSuccess: false
665
- status: 'loading'
711
+ status: 'pending'
666
712
  }
667
713
 
668
714
  export interface MutationObserverErrorResult<
669
715
  TData = unknown,
670
- TError = unknown,
716
+ TError = RegisteredError,
671
717
  TVariables = void,
672
718
  TContext = unknown,
673
719
  > extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
674
720
  data: undefined
675
721
  error: TError
722
+ variables: TVariables
676
723
  isError: true
677
724
  isIdle: false
678
- isLoading: false
725
+ isPending: false
679
726
  isSuccess: false
680
727
  status: 'error'
681
728
  }
682
729
 
683
730
  export interface MutationObserverSuccessResult<
684
731
  TData = unknown,
685
- TError = unknown,
732
+ TError = RegisteredError,
686
733
  TVariables = void,
687
734
  TContext = unknown,
688
735
  > extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
689
736
  data: TData
690
737
  error: null
738
+ variables: TVariables
691
739
  isError: false
692
740
  isIdle: false
693
- isLoading: false
741
+ isPending: false
694
742
  isSuccess: true
695
743
  status: 'success'
696
744
  }
697
745
 
698
746
  export type MutationObserverResult<
699
747
  TData = unknown,
700
- TError = unknown,
748
+ TError = RegisteredError,
701
749
  TVariables = void,
702
750
  TContext = unknown,
703
751
  > =
@@ -709,11 +757,10 @@ export type MutationObserverResult<
709
757
  export interface QueryClientConfig {
710
758
  queryCache?: QueryCache
711
759
  mutationCache?: MutationCache
712
- logger?: Logger
713
760
  defaultOptions?: DefaultOptions
714
761
  }
715
762
 
716
- export interface DefaultOptions<TError = unknown> {
763
+ export interface DefaultOptions<TError = RegisteredError> {
717
764
  queries?: QueryObserverOptions<unknown, TError>
718
765
  mutations?: MutationObserverOptions<unknown, TError, unknown, unknown>
719
766
  }