@tanstack/query-core 4.0.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.
- package/build/cjs/focusManager.js +101 -0
- package/build/cjs/focusManager.js.map +1 -0
- package/build/cjs/hydration.js +112 -0
- package/build/cjs/hydration.js.map +1 -0
- package/build/cjs/index.js +51 -0
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/infiniteQueryBehavior.js +160 -0
- package/build/cjs/infiniteQueryBehavior.js.map +1 -0
- package/build/cjs/infiniteQueryObserver.js +92 -0
- package/build/cjs/infiniteQueryObserver.js.map +1 -0
- package/build/cjs/logger.js +18 -0
- package/build/cjs/logger.js.map +1 -0
- package/build/cjs/mutation.js +258 -0
- package/build/cjs/mutation.js.map +1 -0
- package/build/cjs/mutationCache.js +99 -0
- package/build/cjs/mutationCache.js.map +1 -0
- package/build/cjs/mutationObserver.js +130 -0
- package/build/cjs/mutationObserver.js.map +1 -0
- package/build/cjs/notifyManager.js +114 -0
- package/build/cjs/notifyManager.js.map +1 -0
- package/build/cjs/onlineManager.js +100 -0
- package/build/cjs/onlineManager.js.map +1 -0
- package/build/cjs/queriesObserver.js +170 -0
- package/build/cjs/queriesObserver.js.map +1 -0
- package/build/cjs/query.js +474 -0
- package/build/cjs/query.js.map +1 -0
- package/build/cjs/queryCache.js +140 -0
- package/build/cjs/queryCache.js.map +1 -0
- package/build/cjs/queryClient.js +357 -0
- package/build/cjs/queryClient.js.map +1 -0
- package/build/cjs/queryObserver.js +521 -0
- package/build/cjs/queryObserver.js.map +1 -0
- package/build/cjs/removable.js +47 -0
- package/build/cjs/removable.js.map +1 -0
- package/build/cjs/retryer.js +177 -0
- package/build/cjs/retryer.js.map +1 -0
- package/build/cjs/subscribable.js +43 -0
- package/build/cjs/subscribable.js.map +1 -0
- package/build/cjs/utils.js +356 -0
- package/build/cjs/utils.js.map +1 -0
- package/build/esm/index.js +3077 -0
- package/build/esm/index.js.map +1 -0
- package/build/stats-html.html +2689 -0
- package/build/umd/index.development.js +3106 -0
- package/build/umd/index.development.js.map +1 -0
- package/build/umd/index.production.js +12 -0
- package/build/umd/index.production.js.map +1 -0
- package/package.json +25 -0
- package/src/focusManager.ts +89 -0
- package/src/hydration.ts +164 -0
- package/src/index.ts +35 -0
- package/src/infiniteQueryBehavior.ts +214 -0
- package/src/infiniteQueryObserver.ts +159 -0
- package/src/logger.native.ts +11 -0
- package/src/logger.ts +9 -0
- package/src/mutation.ts +349 -0
- package/src/mutationCache.ts +157 -0
- package/src/mutationObserver.ts +195 -0
- package/src/notifyManager.ts +96 -0
- package/src/onlineManager.ts +89 -0
- package/src/queriesObserver.ts +211 -0
- package/src/query.ts +612 -0
- package/src/queryCache.ts +206 -0
- package/src/queryClient.ts +716 -0
- package/src/queryObserver.ts +748 -0
- package/src/removable.ts +37 -0
- package/src/retryer.ts +215 -0
- package/src/subscribable.ts +33 -0
- package/src/tests/focusManager.test.tsx +155 -0
- package/src/tests/hydration.test.tsx +429 -0
- package/src/tests/infiniteQueryBehavior.test.tsx +124 -0
- package/src/tests/infiniteQueryObserver.test.tsx +64 -0
- package/src/tests/mutationCache.test.tsx +260 -0
- package/src/tests/mutationObserver.test.tsx +75 -0
- package/src/tests/mutations.test.tsx +363 -0
- package/src/tests/notifyManager.test.tsx +51 -0
- package/src/tests/onlineManager.test.tsx +148 -0
- package/src/tests/queriesObserver.test.tsx +330 -0
- package/src/tests/query.test.tsx +888 -0
- package/src/tests/queryCache.test.tsx +236 -0
- package/src/tests/queryClient.test.tsx +1435 -0
- package/src/tests/queryObserver.test.tsx +802 -0
- package/src/tests/utils.test.tsx +360 -0
- package/src/types.ts +705 -0
- package/src/utils.ts +435 -0
package/src/types.ts
ADDED
|
@@ -0,0 +1,705 @@
|
|
|
1
|
+
import type { MutationState } from './mutation'
|
|
2
|
+
import type { QueryBehavior, Query } from './query'
|
|
3
|
+
import type { RetryValue, RetryDelayValue } from './retryer'
|
|
4
|
+
import type { QueryFilters, QueryTypeFilter } from './utils'
|
|
5
|
+
import type { QueryCache } from './queryCache'
|
|
6
|
+
import type { MutationCache } from './mutationCache'
|
|
7
|
+
import { Logger } from './logger'
|
|
8
|
+
|
|
9
|
+
export type QueryKey = readonly unknown[]
|
|
10
|
+
|
|
11
|
+
export type QueryFunction<
|
|
12
|
+
T = unknown,
|
|
13
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
14
|
+
> = (context: QueryFunctionContext<TQueryKey>) => T | Promise<T>
|
|
15
|
+
|
|
16
|
+
export interface QueryFunctionContext<
|
|
17
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
18
|
+
TPageParam = any,
|
|
19
|
+
> {
|
|
20
|
+
queryKey: TQueryKey
|
|
21
|
+
signal?: AbortSignal
|
|
22
|
+
pageParam?: TPageParam
|
|
23
|
+
meta: QueryMeta | undefined
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type InitialDataFunction<T> = () => T | undefined
|
|
27
|
+
|
|
28
|
+
export type PlaceholderDataFunction<TResult> = () => TResult | undefined
|
|
29
|
+
|
|
30
|
+
export type QueryKeyHashFunction<TQueryKey extends QueryKey> = (
|
|
31
|
+
queryKey: TQueryKey,
|
|
32
|
+
) => string
|
|
33
|
+
|
|
34
|
+
export type GetPreviousPageParamFunction<TQueryFnData = unknown> = (
|
|
35
|
+
firstPage: TQueryFnData,
|
|
36
|
+
allPages: TQueryFnData[],
|
|
37
|
+
) => unknown
|
|
38
|
+
|
|
39
|
+
export type GetNextPageParamFunction<TQueryFnData = unknown> = (
|
|
40
|
+
lastPage: TQueryFnData,
|
|
41
|
+
allPages: TQueryFnData[],
|
|
42
|
+
) => unknown
|
|
43
|
+
|
|
44
|
+
export interface InfiniteData<TData> {
|
|
45
|
+
pages: TData[]
|
|
46
|
+
pageParams: unknown[]
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export type QueryMeta = Record<string, unknown>
|
|
50
|
+
|
|
51
|
+
export type NetworkMode = 'online' | 'always' | 'offlineFirst'
|
|
52
|
+
|
|
53
|
+
export interface QueryOptions<
|
|
54
|
+
TQueryFnData = unknown,
|
|
55
|
+
TError = unknown,
|
|
56
|
+
TData = TQueryFnData,
|
|
57
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
58
|
+
> {
|
|
59
|
+
/**
|
|
60
|
+
* If `false`, failed queries will not retry by default.
|
|
61
|
+
* If `true`, failed queries will retry infinitely., failureCount: num
|
|
62
|
+
* If set to an integer number, e.g. 3, failed queries will retry until the failed query count meets that number.
|
|
63
|
+
* If set to a function `(failureCount, error) => boolean` failed queries will retry until the function returns false.
|
|
64
|
+
*/
|
|
65
|
+
retry?: RetryValue<TError>
|
|
66
|
+
retryDelay?: RetryDelayValue<TError>
|
|
67
|
+
networkMode?: NetworkMode
|
|
68
|
+
cacheTime?: number
|
|
69
|
+
isDataEqual?: (oldData: TData | undefined, newData: TData) => boolean
|
|
70
|
+
queryFn?: QueryFunction<TQueryFnData, TQueryKey>
|
|
71
|
+
queryHash?: string
|
|
72
|
+
queryKey?: TQueryKey
|
|
73
|
+
queryKeyHashFn?: QueryKeyHashFunction<TQueryKey>
|
|
74
|
+
initialData?: TData | InitialDataFunction<TData>
|
|
75
|
+
initialDataUpdatedAt?: number | (() => number | undefined)
|
|
76
|
+
behavior?: QueryBehavior<TQueryFnData, TError, TData>
|
|
77
|
+
/**
|
|
78
|
+
* Set this to `false` to disable structural sharing between query results.
|
|
79
|
+
* Defaults to `true`.
|
|
80
|
+
*/
|
|
81
|
+
structuralSharing?: boolean
|
|
82
|
+
/**
|
|
83
|
+
* This function can be set to automatically get the previous cursor for infinite queries.
|
|
84
|
+
* The result will also be used to determine the value of `hasPreviousPage`.
|
|
85
|
+
*/
|
|
86
|
+
getPreviousPageParam?: GetPreviousPageParamFunction<TQueryFnData>
|
|
87
|
+
/**
|
|
88
|
+
* This function can be set to automatically get the next cursor for infinite queries.
|
|
89
|
+
* The result will also be used to determine the value of `hasNextPage`.
|
|
90
|
+
*/
|
|
91
|
+
getNextPageParam?: GetNextPageParamFunction<TQueryFnData>
|
|
92
|
+
_defaulted?: boolean
|
|
93
|
+
/**
|
|
94
|
+
* Additional payload to be stored on each query.
|
|
95
|
+
* Use this property to pass information that can be used in other places.
|
|
96
|
+
*/
|
|
97
|
+
meta?: QueryMeta
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export interface QueryObserverOptions<
|
|
101
|
+
TQueryFnData = unknown,
|
|
102
|
+
TError = unknown,
|
|
103
|
+
TData = TQueryFnData,
|
|
104
|
+
TQueryData = TQueryFnData,
|
|
105
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
106
|
+
> extends QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey> {
|
|
107
|
+
/**
|
|
108
|
+
* Set this to `false` to disable automatic refetching when the query mounts or changes query keys.
|
|
109
|
+
* To refetch the query, use the `refetch` method returned from the `useQuery` instance.
|
|
110
|
+
* Defaults to `true`.
|
|
111
|
+
*/
|
|
112
|
+
enabled?: boolean
|
|
113
|
+
/**
|
|
114
|
+
* The time in milliseconds after data is considered stale.
|
|
115
|
+
* If set to `Infinity`, the data will never be considered stale.
|
|
116
|
+
*/
|
|
117
|
+
staleTime?: number
|
|
118
|
+
/**
|
|
119
|
+
* If set to a number, the query will continuously refetch at this frequency in milliseconds.
|
|
120
|
+
* If set to a function, the function will be executed with the latest data and query to compute a frequency
|
|
121
|
+
* Defaults to `false`.
|
|
122
|
+
*/
|
|
123
|
+
refetchInterval?:
|
|
124
|
+
| number
|
|
125
|
+
| false
|
|
126
|
+
| ((
|
|
127
|
+
data: TData | undefined,
|
|
128
|
+
query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
|
|
129
|
+
) => number | false)
|
|
130
|
+
/**
|
|
131
|
+
* If set to `true`, the query will continue to refetch while their tab/window is in the background.
|
|
132
|
+
* Defaults to `false`.
|
|
133
|
+
*/
|
|
134
|
+
refetchIntervalInBackground?: boolean
|
|
135
|
+
/**
|
|
136
|
+
* If set to `true`, the query will refetch on window focus if the data is stale.
|
|
137
|
+
* If set to `false`, the query will not refetch on window focus.
|
|
138
|
+
* If set to `'always'`, the query will always refetch on window focus.
|
|
139
|
+
* If set to a function, the function will be executed with the latest data and query to compute the value.
|
|
140
|
+
* Defaults to `true`.
|
|
141
|
+
*/
|
|
142
|
+
refetchOnWindowFocus?:
|
|
143
|
+
| boolean
|
|
144
|
+
| 'always'
|
|
145
|
+
| ((
|
|
146
|
+
query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
|
|
147
|
+
) => boolean | 'always')
|
|
148
|
+
/**
|
|
149
|
+
* If set to `true`, the query will refetch on reconnect if the data is stale.
|
|
150
|
+
* If set to `false`, the query will not refetch on reconnect.
|
|
151
|
+
* If set to `'always'`, the query will always refetch on reconnect.
|
|
152
|
+
* If set to a function, the function will be executed with the latest data and query to compute the value.
|
|
153
|
+
* Defaults to the value of `networkOnline` (`true`)
|
|
154
|
+
*/
|
|
155
|
+
refetchOnReconnect?:
|
|
156
|
+
| boolean
|
|
157
|
+
| 'always'
|
|
158
|
+
| ((
|
|
159
|
+
query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
|
|
160
|
+
) => boolean | 'always')
|
|
161
|
+
/**
|
|
162
|
+
* If set to `true`, the query will refetch on mount if the data is stale.
|
|
163
|
+
* If set to `false`, will disable additional instances of a query to trigger background refetches.
|
|
164
|
+
* If set to `'always'`, the query will always refetch on mount.
|
|
165
|
+
* If set to a function, the function will be executed with the latest data and query to compute the value
|
|
166
|
+
* Defaults to `true`.
|
|
167
|
+
*/
|
|
168
|
+
refetchOnMount?:
|
|
169
|
+
| boolean
|
|
170
|
+
| 'always'
|
|
171
|
+
| ((
|
|
172
|
+
query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
|
|
173
|
+
) => boolean | 'always')
|
|
174
|
+
/**
|
|
175
|
+
* If set to `false`, the query will not be retried on mount if it contains an error.
|
|
176
|
+
* Defaults to `true`.
|
|
177
|
+
*/
|
|
178
|
+
retryOnMount?: boolean
|
|
179
|
+
/**
|
|
180
|
+
* If set, the component will only re-render if any of the listed properties change.
|
|
181
|
+
* When set to `['data', 'error']`, the component will only re-render when the `data` or `error` properties change.
|
|
182
|
+
* When set to `'all'`, the component will re-render whenever a query is updated.
|
|
183
|
+
* By default, access to properties will be tracked, and the component will only re-render when one of the tracked properties change.
|
|
184
|
+
*/
|
|
185
|
+
notifyOnChangeProps?: Array<keyof InfiniteQueryObserverResult> | 'all'
|
|
186
|
+
/**
|
|
187
|
+
* This callback will fire any time the query successfully fetches new data or the cache is updated via `setQueryData`.
|
|
188
|
+
*/
|
|
189
|
+
onSuccess?: (data: TData) => void
|
|
190
|
+
/**
|
|
191
|
+
* This callback will fire if the query encounters an error and will be passed the error.
|
|
192
|
+
*/
|
|
193
|
+
onError?: (err: TError) => void
|
|
194
|
+
/**
|
|
195
|
+
* This callback will fire any time the query is either successfully fetched or errors and be passed either the data or error.
|
|
196
|
+
*/
|
|
197
|
+
onSettled?: (data: TData | undefined, error: TError | null) => void
|
|
198
|
+
/**
|
|
199
|
+
* Whether errors should be thrown instead of setting the `error` property.
|
|
200
|
+
* If set to `true` or `suspense` is `true`, all errors will be thrown to the error boundary.
|
|
201
|
+
* If set to `false` and `suspense` is `false`, errors are returned as state.
|
|
202
|
+
* 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`).
|
|
203
|
+
* Defaults to `false`.
|
|
204
|
+
*/
|
|
205
|
+
useErrorBoundary?:
|
|
206
|
+
| boolean
|
|
207
|
+
| ((
|
|
208
|
+
error: TError,
|
|
209
|
+
query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
|
|
210
|
+
) => boolean)
|
|
211
|
+
/**
|
|
212
|
+
* This option can be used to transform or select a part of the data returned by the query function.
|
|
213
|
+
*/
|
|
214
|
+
select?: (data: TQueryData) => TData
|
|
215
|
+
/**
|
|
216
|
+
* If set to `true`, the query will suspend when `status === 'loading'`
|
|
217
|
+
* and throw errors when `status === 'error'`.
|
|
218
|
+
* Defaults to `false`.
|
|
219
|
+
*/
|
|
220
|
+
suspense?: boolean
|
|
221
|
+
/**
|
|
222
|
+
* Set this to `true` to keep the previous `data` when fetching based on a new query key.
|
|
223
|
+
* Defaults to `false`.
|
|
224
|
+
*/
|
|
225
|
+
keepPreviousData?: boolean
|
|
226
|
+
/**
|
|
227
|
+
* 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.
|
|
228
|
+
*/
|
|
229
|
+
placeholderData?: TQueryData | PlaceholderDataFunction<TQueryData>
|
|
230
|
+
|
|
231
|
+
_optimisticResults?: 'optimistic' | 'isRestoring'
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
type WithRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>
|
|
235
|
+
export type DefaultedQueryObserverOptions<
|
|
236
|
+
TQueryFnData = unknown,
|
|
237
|
+
TError = unknown,
|
|
238
|
+
TData = TQueryFnData,
|
|
239
|
+
TQueryData = TQueryFnData,
|
|
240
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
241
|
+
> = WithRequired<
|
|
242
|
+
QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>,
|
|
243
|
+
'useErrorBoundary' | 'refetchOnReconnect'
|
|
244
|
+
>
|
|
245
|
+
|
|
246
|
+
export interface InfiniteQueryObserverOptions<
|
|
247
|
+
TQueryFnData = unknown,
|
|
248
|
+
TError = unknown,
|
|
249
|
+
TData = TQueryFnData,
|
|
250
|
+
TQueryData = TQueryFnData,
|
|
251
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
252
|
+
> extends QueryObserverOptions<
|
|
253
|
+
TQueryFnData,
|
|
254
|
+
TError,
|
|
255
|
+
InfiniteData<TData>,
|
|
256
|
+
InfiniteData<TQueryData>,
|
|
257
|
+
TQueryKey
|
|
258
|
+
> {}
|
|
259
|
+
|
|
260
|
+
export type DefaultedInfiniteQueryObserverOptions<
|
|
261
|
+
TQueryFnData = unknown,
|
|
262
|
+
TError = unknown,
|
|
263
|
+
TData = TQueryFnData,
|
|
264
|
+
TQueryData = TQueryFnData,
|
|
265
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
266
|
+
> = WithRequired<
|
|
267
|
+
InfiniteQueryObserverOptions<
|
|
268
|
+
TQueryFnData,
|
|
269
|
+
TError,
|
|
270
|
+
TData,
|
|
271
|
+
TQueryData,
|
|
272
|
+
TQueryKey
|
|
273
|
+
>,
|
|
274
|
+
'useErrorBoundary' | 'refetchOnReconnect'
|
|
275
|
+
>
|
|
276
|
+
|
|
277
|
+
export interface FetchQueryOptions<
|
|
278
|
+
TQueryFnData = unknown,
|
|
279
|
+
TError = unknown,
|
|
280
|
+
TData = TQueryFnData,
|
|
281
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
282
|
+
> extends QueryOptions<TQueryFnData, TError, TData, TQueryKey> {
|
|
283
|
+
/**
|
|
284
|
+
* The time in milliseconds after data is considered stale.
|
|
285
|
+
* If the data is fresh it will be returned from the cache.
|
|
286
|
+
*/
|
|
287
|
+
staleTime?: number
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
export interface FetchInfiniteQueryOptions<
|
|
291
|
+
TQueryFnData = unknown,
|
|
292
|
+
TError = unknown,
|
|
293
|
+
TData = TQueryFnData,
|
|
294
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
295
|
+
> extends FetchQueryOptions<
|
|
296
|
+
TQueryFnData,
|
|
297
|
+
TError,
|
|
298
|
+
InfiniteData<TData>,
|
|
299
|
+
TQueryKey
|
|
300
|
+
> {}
|
|
301
|
+
|
|
302
|
+
export interface ResultOptions {
|
|
303
|
+
throwOnError?: boolean
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
export interface RefetchPageFilters<TPageData = unknown> {
|
|
307
|
+
refetchPage?: (
|
|
308
|
+
lastPage: TPageData,
|
|
309
|
+
index: number,
|
|
310
|
+
allPages: TPageData[],
|
|
311
|
+
) => boolean
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
export interface RefetchOptions extends ResultOptions {
|
|
315
|
+
cancelRefetch?: boolean
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
export interface InvalidateQueryFilters<TPageData = unknown>
|
|
319
|
+
extends QueryFilters,
|
|
320
|
+
RefetchPageFilters<TPageData> {
|
|
321
|
+
refetchType?: QueryTypeFilter | 'none'
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
export interface RefetchQueryFilters<TPageData = unknown>
|
|
325
|
+
extends QueryFilters,
|
|
326
|
+
RefetchPageFilters<TPageData> {}
|
|
327
|
+
|
|
328
|
+
export interface ResetQueryFilters<TPageData = unknown>
|
|
329
|
+
extends QueryFilters,
|
|
330
|
+
RefetchPageFilters<TPageData> {}
|
|
331
|
+
|
|
332
|
+
export interface InvalidateOptions extends RefetchOptions {}
|
|
333
|
+
export interface ResetOptions extends RefetchOptions {}
|
|
334
|
+
|
|
335
|
+
export interface FetchNextPageOptions extends ResultOptions {
|
|
336
|
+
cancelRefetch?: boolean
|
|
337
|
+
pageParam?: unknown
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export interface FetchPreviousPageOptions extends ResultOptions {
|
|
341
|
+
cancelRefetch?: boolean
|
|
342
|
+
pageParam?: unknown
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
export type QueryStatus = 'loading' | 'error' | 'success'
|
|
346
|
+
export type FetchStatus = 'fetching' | 'paused' | 'idle'
|
|
347
|
+
|
|
348
|
+
export interface QueryObserverBaseResult<TData = unknown, TError = unknown> {
|
|
349
|
+
data: TData | undefined
|
|
350
|
+
dataUpdatedAt: number
|
|
351
|
+
error: TError | null
|
|
352
|
+
errorUpdatedAt: number
|
|
353
|
+
failureCount: number
|
|
354
|
+
errorUpdateCount: number
|
|
355
|
+
isError: boolean
|
|
356
|
+
isFetched: boolean
|
|
357
|
+
isFetchedAfterMount: boolean
|
|
358
|
+
isFetching: boolean
|
|
359
|
+
isLoading: boolean
|
|
360
|
+
isLoadingError: boolean
|
|
361
|
+
isPaused: boolean
|
|
362
|
+
isPlaceholderData: boolean
|
|
363
|
+
isPreviousData: boolean
|
|
364
|
+
isRefetchError: boolean
|
|
365
|
+
isRefetching: boolean
|
|
366
|
+
isStale: boolean
|
|
367
|
+
isSuccess: boolean
|
|
368
|
+
refetch: <TPageData>(
|
|
369
|
+
options?: RefetchOptions & RefetchQueryFilters<TPageData>,
|
|
370
|
+
) => Promise<QueryObserverResult<TData, TError>>
|
|
371
|
+
remove: () => void
|
|
372
|
+
status: QueryStatus
|
|
373
|
+
fetchStatus: FetchStatus
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
export interface QueryObserverLoadingResult<TData = unknown, TError = unknown>
|
|
377
|
+
extends QueryObserverBaseResult<TData, TError> {
|
|
378
|
+
data: undefined
|
|
379
|
+
error: null
|
|
380
|
+
isError: false
|
|
381
|
+
isLoading: true
|
|
382
|
+
isLoadingError: false
|
|
383
|
+
isRefetchError: false
|
|
384
|
+
isSuccess: false
|
|
385
|
+
status: 'loading'
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
export interface QueryObserverLoadingErrorResult<
|
|
389
|
+
TData = unknown,
|
|
390
|
+
TError = unknown,
|
|
391
|
+
> extends QueryObserverBaseResult<TData, TError> {
|
|
392
|
+
data: undefined
|
|
393
|
+
error: TError
|
|
394
|
+
isError: true
|
|
395
|
+
isLoading: false
|
|
396
|
+
isLoadingError: true
|
|
397
|
+
isRefetchError: false
|
|
398
|
+
isSuccess: false
|
|
399
|
+
status: 'error'
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
export interface QueryObserverRefetchErrorResult<
|
|
403
|
+
TData = unknown,
|
|
404
|
+
TError = unknown,
|
|
405
|
+
> extends QueryObserverBaseResult<TData, TError> {
|
|
406
|
+
data: TData
|
|
407
|
+
error: TError
|
|
408
|
+
isError: true
|
|
409
|
+
isLoading: false
|
|
410
|
+
isLoadingError: false
|
|
411
|
+
isRefetchError: true
|
|
412
|
+
isSuccess: false
|
|
413
|
+
status: 'error'
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
export interface QueryObserverSuccessResult<TData = unknown, TError = unknown>
|
|
417
|
+
extends QueryObserverBaseResult<TData, TError> {
|
|
418
|
+
data: TData
|
|
419
|
+
error: null
|
|
420
|
+
isError: false
|
|
421
|
+
isLoading: false
|
|
422
|
+
isLoadingError: false
|
|
423
|
+
isRefetchError: false
|
|
424
|
+
isSuccess: true
|
|
425
|
+
status: 'success'
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
export type QueryObserverResult<TData = unknown, TError = unknown> =
|
|
429
|
+
| QueryObserverLoadingErrorResult<TData, TError>
|
|
430
|
+
| QueryObserverLoadingResult<TData, TError>
|
|
431
|
+
| QueryObserverRefetchErrorResult<TData, TError>
|
|
432
|
+
| QueryObserverSuccessResult<TData, TError>
|
|
433
|
+
|
|
434
|
+
export interface InfiniteQueryObserverBaseResult<
|
|
435
|
+
TData = unknown,
|
|
436
|
+
TError = unknown,
|
|
437
|
+
> extends QueryObserverBaseResult<InfiniteData<TData>, TError> {
|
|
438
|
+
fetchNextPage: (
|
|
439
|
+
options?: FetchNextPageOptions,
|
|
440
|
+
) => Promise<InfiniteQueryObserverResult<TData, TError>>
|
|
441
|
+
fetchPreviousPage: (
|
|
442
|
+
options?: FetchPreviousPageOptions,
|
|
443
|
+
) => Promise<InfiniteQueryObserverResult<TData, TError>>
|
|
444
|
+
hasNextPage?: boolean
|
|
445
|
+
hasPreviousPage?: boolean
|
|
446
|
+
isFetchingNextPage: boolean
|
|
447
|
+
isFetchingPreviousPage: boolean
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
export interface InfiniteQueryObserverLoadingResult<
|
|
451
|
+
TData = unknown,
|
|
452
|
+
TError = unknown,
|
|
453
|
+
> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
454
|
+
data: undefined
|
|
455
|
+
error: null
|
|
456
|
+
isError: false
|
|
457
|
+
isLoading: true
|
|
458
|
+
isLoadingError: false
|
|
459
|
+
isRefetchError: false
|
|
460
|
+
isSuccess: false
|
|
461
|
+
status: 'loading'
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
export interface InfiniteQueryObserverLoadingErrorResult<
|
|
465
|
+
TData = unknown,
|
|
466
|
+
TError = unknown,
|
|
467
|
+
> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
468
|
+
data: undefined
|
|
469
|
+
error: TError
|
|
470
|
+
isError: true
|
|
471
|
+
isLoading: false
|
|
472
|
+
isLoadingError: true
|
|
473
|
+
isRefetchError: false
|
|
474
|
+
isSuccess: false
|
|
475
|
+
status: 'error'
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
export interface InfiniteQueryObserverRefetchErrorResult<
|
|
479
|
+
TData = unknown,
|
|
480
|
+
TError = unknown,
|
|
481
|
+
> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
482
|
+
data: InfiniteData<TData>
|
|
483
|
+
error: TError
|
|
484
|
+
isError: true
|
|
485
|
+
isLoading: false
|
|
486
|
+
isLoadingError: false
|
|
487
|
+
isRefetchError: true
|
|
488
|
+
isSuccess: false
|
|
489
|
+
status: 'error'
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
export interface InfiniteQueryObserverSuccessResult<
|
|
493
|
+
TData = unknown,
|
|
494
|
+
TError = unknown,
|
|
495
|
+
> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
496
|
+
data: InfiniteData<TData>
|
|
497
|
+
error: null
|
|
498
|
+
isError: false
|
|
499
|
+
isLoading: false
|
|
500
|
+
isLoadingError: false
|
|
501
|
+
isRefetchError: false
|
|
502
|
+
isSuccess: true
|
|
503
|
+
status: 'success'
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
export type InfiniteQueryObserverResult<TData = unknown, TError = unknown> =
|
|
507
|
+
| InfiniteQueryObserverLoadingErrorResult<TData, TError>
|
|
508
|
+
| InfiniteQueryObserverLoadingResult<TData, TError>
|
|
509
|
+
| InfiniteQueryObserverRefetchErrorResult<TData, TError>
|
|
510
|
+
| InfiniteQueryObserverSuccessResult<TData, TError>
|
|
511
|
+
|
|
512
|
+
export type MutationKey = readonly unknown[]
|
|
513
|
+
|
|
514
|
+
export type MutationStatus = 'idle' | 'loading' | 'success' | 'error'
|
|
515
|
+
|
|
516
|
+
export type MutationMeta = Record<string, unknown>
|
|
517
|
+
|
|
518
|
+
export type MutationFunction<TData = unknown, TVariables = unknown> = (
|
|
519
|
+
variables: TVariables,
|
|
520
|
+
) => Promise<TData>
|
|
521
|
+
|
|
522
|
+
export interface MutationOptions<
|
|
523
|
+
TData = unknown,
|
|
524
|
+
TError = unknown,
|
|
525
|
+
TVariables = void,
|
|
526
|
+
TContext = unknown,
|
|
527
|
+
> {
|
|
528
|
+
mutationFn?: MutationFunction<TData, TVariables>
|
|
529
|
+
mutationKey?: MutationKey
|
|
530
|
+
variables?: TVariables
|
|
531
|
+
onMutate?: (
|
|
532
|
+
variables: TVariables,
|
|
533
|
+
) => Promise<TContext | undefined> | TContext | undefined
|
|
534
|
+
onSuccess?: (
|
|
535
|
+
data: TData,
|
|
536
|
+
variables: TVariables,
|
|
537
|
+
context: TContext | undefined,
|
|
538
|
+
) => Promise<unknown> | void
|
|
539
|
+
onError?: (
|
|
540
|
+
error: TError,
|
|
541
|
+
variables: TVariables,
|
|
542
|
+
context: TContext | undefined,
|
|
543
|
+
) => Promise<unknown> | void
|
|
544
|
+
onSettled?: (
|
|
545
|
+
data: TData | undefined,
|
|
546
|
+
error: TError | null,
|
|
547
|
+
variables: TVariables,
|
|
548
|
+
context: TContext | undefined,
|
|
549
|
+
) => Promise<unknown> | void
|
|
550
|
+
retry?: RetryValue<TError>
|
|
551
|
+
retryDelay?: RetryDelayValue<TError>
|
|
552
|
+
networkMode?: NetworkMode
|
|
553
|
+
cacheTime?: number
|
|
554
|
+
_defaulted?: boolean
|
|
555
|
+
meta?: MutationMeta
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
export interface MutationObserverOptions<
|
|
559
|
+
TData = unknown,
|
|
560
|
+
TError = unknown,
|
|
561
|
+
TVariables = void,
|
|
562
|
+
TContext = unknown,
|
|
563
|
+
> extends MutationOptions<TData, TError, TVariables, TContext> {
|
|
564
|
+
useErrorBoundary?: boolean | ((error: TError) => boolean)
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
export interface MutateOptions<
|
|
568
|
+
TData = unknown,
|
|
569
|
+
TError = unknown,
|
|
570
|
+
TVariables = void,
|
|
571
|
+
TContext = unknown,
|
|
572
|
+
> {
|
|
573
|
+
onSuccess?: (
|
|
574
|
+
data: TData,
|
|
575
|
+
variables: TVariables,
|
|
576
|
+
context: TContext,
|
|
577
|
+
) => Promise<unknown> | void
|
|
578
|
+
onError?: (
|
|
579
|
+
error: TError,
|
|
580
|
+
variables: TVariables,
|
|
581
|
+
context: TContext | undefined,
|
|
582
|
+
) => Promise<unknown> | void
|
|
583
|
+
onSettled?: (
|
|
584
|
+
data: TData | undefined,
|
|
585
|
+
error: TError | null,
|
|
586
|
+
variables: TVariables,
|
|
587
|
+
context: TContext | undefined,
|
|
588
|
+
) => Promise<unknown> | void
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
export type MutateFunction<
|
|
592
|
+
TData = unknown,
|
|
593
|
+
TError = unknown,
|
|
594
|
+
TVariables = void,
|
|
595
|
+
TContext = unknown,
|
|
596
|
+
> = (
|
|
597
|
+
variables: TVariables,
|
|
598
|
+
options?: MutateOptions<TData, TError, TVariables, TContext>,
|
|
599
|
+
) => Promise<TData>
|
|
600
|
+
|
|
601
|
+
export interface MutationObserverBaseResult<
|
|
602
|
+
TData = unknown,
|
|
603
|
+
TError = unknown,
|
|
604
|
+
TVariables = void,
|
|
605
|
+
TContext = unknown,
|
|
606
|
+
> extends MutationState<TData, TError, TVariables, TContext> {
|
|
607
|
+
isError: boolean
|
|
608
|
+
isIdle: boolean
|
|
609
|
+
isLoading: boolean
|
|
610
|
+
isSuccess: boolean
|
|
611
|
+
mutate: MutateFunction<TData, TError, TVariables, TContext>
|
|
612
|
+
reset: () => void
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
export interface MutationObserverIdleResult<
|
|
616
|
+
TData = unknown,
|
|
617
|
+
TError = unknown,
|
|
618
|
+
TVariables = void,
|
|
619
|
+
TContext = unknown,
|
|
620
|
+
> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
621
|
+
data: undefined
|
|
622
|
+
error: null
|
|
623
|
+
isError: false
|
|
624
|
+
isIdle: true
|
|
625
|
+
isLoading: false
|
|
626
|
+
isSuccess: false
|
|
627
|
+
status: 'idle'
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
export interface MutationObserverLoadingResult<
|
|
631
|
+
TData = unknown,
|
|
632
|
+
TError = unknown,
|
|
633
|
+
TVariables = void,
|
|
634
|
+
TContext = unknown,
|
|
635
|
+
> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
636
|
+
data: undefined
|
|
637
|
+
error: null
|
|
638
|
+
isError: false
|
|
639
|
+
isIdle: false
|
|
640
|
+
isLoading: true
|
|
641
|
+
isSuccess: false
|
|
642
|
+
status: 'loading'
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
export interface MutationObserverErrorResult<
|
|
646
|
+
TData = unknown,
|
|
647
|
+
TError = unknown,
|
|
648
|
+
TVariables = void,
|
|
649
|
+
TContext = unknown,
|
|
650
|
+
> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
651
|
+
data: undefined
|
|
652
|
+
error: TError
|
|
653
|
+
isError: true
|
|
654
|
+
isIdle: false
|
|
655
|
+
isLoading: false
|
|
656
|
+
isSuccess: false
|
|
657
|
+
status: 'error'
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
export interface MutationObserverSuccessResult<
|
|
661
|
+
TData = unknown,
|
|
662
|
+
TError = unknown,
|
|
663
|
+
TVariables = void,
|
|
664
|
+
TContext = unknown,
|
|
665
|
+
> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
666
|
+
data: TData
|
|
667
|
+
error: null
|
|
668
|
+
isError: false
|
|
669
|
+
isIdle: false
|
|
670
|
+
isLoading: false
|
|
671
|
+
isSuccess: true
|
|
672
|
+
status: 'success'
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
export type MutationObserverResult<
|
|
676
|
+
TData = unknown,
|
|
677
|
+
TError = unknown,
|
|
678
|
+
TVariables = void,
|
|
679
|
+
TContext = unknown,
|
|
680
|
+
> =
|
|
681
|
+
| MutationObserverIdleResult<TData, TError, TVariables, TContext>
|
|
682
|
+
| MutationObserverLoadingResult<TData, TError, TVariables, TContext>
|
|
683
|
+
| MutationObserverErrorResult<TData, TError, TVariables, TContext>
|
|
684
|
+
| MutationObserverSuccessResult<TData, TError, TVariables, TContext>
|
|
685
|
+
|
|
686
|
+
export interface QueryClientConfig {
|
|
687
|
+
queryCache?: QueryCache
|
|
688
|
+
mutationCache?: MutationCache
|
|
689
|
+
logger?: Logger
|
|
690
|
+
defaultOptions?: DefaultOptions
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
export interface DefaultOptions<TError = unknown> {
|
|
694
|
+
queries?: QueryObserverOptions<unknown, TError>
|
|
695
|
+
mutations?: MutationObserverOptions<unknown, TError, unknown, unknown>
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
export interface CancelOptions {
|
|
699
|
+
revert?: boolean
|
|
700
|
+
silent?: boolean
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
export interface SetDataOptions {
|
|
704
|
+
updatedAt?: number
|
|
705
|
+
}
|