1 | import { MutationState } from './mutation';
|
2 | import { QueryBehavior, Query } from './query';
|
3 | import { RetryValue, RetryDelayValue } from './retryer';
|
4 | import { QueryFilters } from './utils';
|
5 | import { QueryCache } from './queryCache';
|
6 | import { MutationCache } from './mutationCache';
|
7 | export declare type QueryKey = string | readonly unknown[];
|
8 | export declare type EnsuredQueryKey<T extends QueryKey> = T extends string ? [T] : Exclude<T, string>;
|
9 | export declare type QueryFunction<T = unknown, TQueryKey extends QueryKey = QueryKey> = (context: QueryFunctionContext<TQueryKey>) => T | Promise<T>;
|
10 | export interface QueryFunctionContext<TQueryKey extends QueryKey = QueryKey, TPageParam = any> {
|
11 | queryKey: EnsuredQueryKey<TQueryKey>;
|
12 | signal?: AbortSignal;
|
13 | pageParam?: TPageParam;
|
14 | meta: QueryMeta | undefined;
|
15 | }
|
16 | export declare type InitialDataFunction<T> = () => T | undefined;
|
17 | export declare type PlaceholderDataFunction<TResult> = () => TResult | undefined;
|
18 | export declare type QueryKeyHashFunction<TQueryKey extends QueryKey> = (queryKey: TQueryKey) => string;
|
19 | export declare type GetPreviousPageParamFunction<TQueryFnData = unknown> = (firstPage: TQueryFnData, allPages: TQueryFnData[]) => unknown;
|
20 | export declare type GetNextPageParamFunction<TQueryFnData = unknown> = (lastPage: TQueryFnData, allPages: TQueryFnData[]) => unknown;
|
21 | export interface InfiniteData<TData> {
|
22 | pages: TData[];
|
23 | pageParams: unknown[];
|
24 | }
|
25 | export declare type QueryMeta = Record<string, unknown>;
|
26 | export interface QueryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
|
27 | |
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 | retry?: RetryValue<TError>;
|
34 | retryDelay?: RetryDelayValue<TError>;
|
35 | cacheTime?: number;
|
36 | isDataEqual?: (oldData: TData | undefined, newData: TData) => boolean;
|
37 | queryFn?: QueryFunction<TQueryFnData, TQueryKey>;
|
38 | queryHash?: string;
|
39 | queryKey?: TQueryKey;
|
40 | queryKeyHashFn?: QueryKeyHashFunction<TQueryKey>;
|
41 | initialData?: TData | InitialDataFunction<TData>;
|
42 | initialDataUpdatedAt?: number | (() => number | undefined);
|
43 | behavior?: QueryBehavior<TQueryFnData, TError, TData>;
|
44 | /**
|
45 | * Set this to `false` to disable structural sharing between query results.
|
46 | * Defaults to `true`.
|
47 | */
|
48 | structuralSharing?: boolean;
|
49 | /**
|
50 | * This function can be set to automatically get the previous cursor for infinite queries.
|
51 | * The result will also be used to determine the value of `hasPreviousPage`.
|
52 | */
|
53 | getPreviousPageParam?: GetPreviousPageParamFunction<TQueryFnData>;
|
54 | /**
|
55 | * This function can be set to automatically get the next cursor for infinite queries.
|
56 | * The result will also be used to determine the value of `hasNextPage`.
|
57 | */
|
58 | getNextPageParam?: GetNextPageParamFunction<TQueryFnData>;
|
59 | _defaulted?: boolean;
|
60 | /**
|
61 | * Additional payload to be stored on each query.
|
62 | * Use this property to pass information that can be used in other places.
|
63 | */
|
64 | meta?: QueryMeta;
|
65 | }
|
66 | export interface QueryObserverOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey> {
|
67 | /**
|
68 | * Set this to `false` to disable automatic refetching when the query mounts or changes query keys.
|
69 | * To refetch the query, use the `refetch` method returned from the `useQuery` instance.
|
70 | * Defaults to `true`.
|
71 | */
|
72 | enabled?: boolean;
|
73 | /**
|
74 | * The time in milliseconds after data is considered stale.
|
75 | * If set to `Infinity`, the data will never be considered stale.
|
76 | */
|
77 | staleTime?: number;
|
78 | /**
|
79 | * If set to a number, the query will continuously refetch at this frequency in milliseconds.
|
80 | * If set to a function, the function will be executed with the latest data and query to compute a frequency
|
81 | * Defaults to `false`.
|
82 | */
|
83 | refetchInterval?: number | false | ((data: TData | undefined, query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => number | false);
|
84 | /**
|
85 | * If set to `true`, the query will continue to refetch while their tab/window is in the background.
|
86 | * Defaults to `false`.
|
87 | */
|
88 | refetchIntervalInBackground?: boolean;
|
89 | /**
|
90 | * If set to `true`, the query will refetch on window focus if the data is stale.
|
91 | * If set to `false`, the query will not refetch on window focus.
|
92 | * If set to `'always'`, the query will always refetch on window focus.
|
93 | * If set to a function, the function will be executed with the latest data and query to compute the value.
|
94 | * Defaults to `true`.
|
95 | */
|
96 | refetchOnWindowFocus?: boolean | 'always' | ((query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean | 'always');
|
97 | /**
|
98 | * If set to `true`, the query will refetch on reconnect if the data is stale.
|
99 | * If set to `false`, the query will not refetch on reconnect.
|
100 | * If set to `'always'`, the query will always refetch on reconnect.
|
101 | * If set to a function, the function will be executed with the latest data and query to compute the value.
|
102 | * Defaults to `true`.
|
103 | */
|
104 | refetchOnReconnect?: boolean | 'always' | ((query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean | 'always');
|
105 | /**
|
106 | * If set to `true`, the query will refetch on mount if the data is stale.
|
107 | * If set to `false`, will disable additional instances of a query to trigger background refetches.
|
108 | * If set to `'always'`, the query will always refetch on mount.
|
109 | * If set to a function, the function will be executed with the latest data and query to compute the value
|
110 | * Defaults to `true`.
|
111 | */
|
112 | refetchOnMount?: boolean | 'always' | ((query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean | 'always');
|
113 | /**
|
114 | * If set to `false`, the query will not be retried on mount if it contains an error.
|
115 | * Defaults to `true`.
|
116 | */
|
117 | retryOnMount?: boolean;
|
118 | /**
|
119 | * If set, the component will only re-render if any of the listed properties change.
|
120 | * When set to `['data', 'error']`, the component will only re-render when the `data` or `error` properties change.
|
121 | * When set to `tracked`, access to properties will be tracked, and the component will only re-render when one of the tracked properties change.
|
122 | */
|
123 | notifyOnChangeProps?: Array<keyof InfiniteQueryObserverResult> | 'tracked';
|
124 | /**
|
125 | * If set, the component will not re-render if any of the listed properties change.
|
126 | */
|
127 | notifyOnChangePropsExclusions?: Array<keyof InfiniteQueryObserverResult>;
|
128 | /**
|
129 | * This callback will fire any time the query successfully fetches new data or the cache is updated via `setQueryData`.
|
130 | */
|
131 | onSuccess?: (data: TData) => void;
|
132 | |
133 |
|
134 |
|
135 | onError?: (err: TError) => void;
|
136 | |
137 |
|
138 |
|
139 | onSettled?: (data: TData | undefined, error: TError | null) => void;
|
140 | |
141 |
|
142 |
|
143 |
|
144 |
|
145 |
|
146 |
|
147 | useErrorBoundary?: boolean | ((error: TError, query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean);
|
148 | /**
|
149 | * This option can be used to transform or select a part of the data returned by the query function.
|
150 | */
|
151 | select?: (data: TQueryData) => TData;
|
152 | |
153 |
|
154 |
|
155 |
|
156 |
|
157 | suspense?: boolean;
|
158 | |
159 |
|
160 |
|
161 |
|
162 | keepPreviousData?: boolean;
|
163 | |
164 |
|
165 |
|
166 | placeholderData?: TQueryData | PlaceholderDataFunction<TQueryData>;
|
167 | |
168 |
|
169 |
|
170 |
|
171 |
|
172 | optimisticResults?: boolean;
|
173 | }
|
174 | export interface InfiniteQueryObserverOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryObserverOptions<TQueryFnData, TError, InfiniteData<TData>, InfiniteData<TQueryData>, TQueryKey> {
|
175 | }
|
176 | export interface FetchQueryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryOptions<TQueryFnData, TError, TData, TQueryKey> {
|
177 | |
178 |
|
179 |
|
180 |
|
181 | staleTime?: number;
|
182 | }
|
183 | export interface FetchInfiniteQueryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends FetchQueryOptions<TQueryFnData, TError, InfiniteData<TData>, TQueryKey> {
|
184 | }
|
185 | export interface ResultOptions {
|
186 | throwOnError?: boolean;
|
187 | }
|
188 | export interface RefetchPageFilters<TPageData = unknown> {
|
189 | refetchPage?: (lastPage: TPageData, index: number, allPages: TPageData[]) => boolean;
|
190 | }
|
191 | export interface RefetchOptions extends ResultOptions {
|
192 | cancelRefetch?: boolean;
|
193 | }
|
194 | export interface InvalidateQueryFilters<TPageData = unknown> extends QueryFilters, RefetchPageFilters<TPageData> {
|
195 | refetchActive?: boolean;
|
196 | refetchInactive?: boolean;
|
197 | }
|
198 | export interface RefetchQueryFilters<TPageData = unknown> extends QueryFilters, RefetchPageFilters<TPageData> {
|
199 | }
|
200 | export interface ResetQueryFilters<TPageData = unknown> extends QueryFilters, RefetchPageFilters<TPageData> {
|
201 | }
|
202 | export interface InvalidateOptions extends RefetchOptions {
|
203 | }
|
204 | export interface ResetOptions extends RefetchOptions {
|
205 | }
|
206 | export interface FetchNextPageOptions extends ResultOptions {
|
207 | cancelRefetch?: boolean;
|
208 | pageParam?: unknown;
|
209 | }
|
210 | export interface FetchPreviousPageOptions extends ResultOptions {
|
211 | cancelRefetch?: boolean;
|
212 | pageParam?: unknown;
|
213 | }
|
214 | export declare type QueryStatus = 'idle' | 'loading' | 'error' | 'success';
|
215 | export interface QueryObserverBaseResult<TData = unknown, TError = unknown> {
|
216 | data: TData | undefined;
|
217 | dataUpdatedAt: number;
|
218 | error: TError | null;
|
219 | errorUpdatedAt: number;
|
220 | failureCount: number;
|
221 | errorUpdateCount: number;
|
222 | isError: boolean;
|
223 | isFetched: boolean;
|
224 | isFetchedAfterMount: boolean;
|
225 | isFetching: boolean;
|
226 | isIdle: boolean;
|
227 | isLoading: boolean;
|
228 | isLoadingError: boolean;
|
229 | isPlaceholderData: boolean;
|
230 | isPreviousData: boolean;
|
231 | isRefetchError: boolean;
|
232 | isRefetching: boolean;
|
233 | isStale: boolean;
|
234 | isSuccess: boolean;
|
235 | refetch: <TPageData>(options?: RefetchOptions & RefetchQueryFilters<TPageData>) => Promise<QueryObserverResult<TData, TError>>;
|
236 | remove: () => void;
|
237 | status: QueryStatus;
|
238 | }
|
239 | export interface QueryObserverIdleResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<TData, TError> {
|
240 | data: undefined;
|
241 | error: null;
|
242 | isError: false;
|
243 | isIdle: true;
|
244 | isLoading: false;
|
245 | isLoadingError: false;
|
246 | isRefetchError: false;
|
247 | isSuccess: false;
|
248 | status: 'idle';
|
249 | }
|
250 | export interface QueryObserverLoadingResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<TData, TError> {
|
251 | data: undefined;
|
252 | error: null;
|
253 | isError: false;
|
254 | isIdle: false;
|
255 | isLoading: true;
|
256 | isLoadingError: false;
|
257 | isRefetchError: false;
|
258 | isSuccess: false;
|
259 | status: 'loading';
|
260 | }
|
261 | export interface QueryObserverLoadingErrorResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<TData, TError> {
|
262 | data: undefined;
|
263 | error: TError;
|
264 | isError: true;
|
265 | isIdle: false;
|
266 | isLoading: false;
|
267 | isLoadingError: true;
|
268 | isRefetchError: false;
|
269 | isSuccess: false;
|
270 | status: 'error';
|
271 | }
|
272 | export interface QueryObserverRefetchErrorResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<TData, TError> {
|
273 | data: TData;
|
274 | error: TError;
|
275 | isError: true;
|
276 | isIdle: false;
|
277 | isLoading: false;
|
278 | isLoadingError: false;
|
279 | isRefetchError: true;
|
280 | isSuccess: false;
|
281 | status: 'error';
|
282 | }
|
283 | export interface QueryObserverSuccessResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<TData, TError> {
|
284 | data: TData;
|
285 | error: null;
|
286 | isError: false;
|
287 | isIdle: false;
|
288 | isLoading: false;
|
289 | isLoadingError: false;
|
290 | isRefetchError: false;
|
291 | isSuccess: true;
|
292 | status: 'success';
|
293 | }
|
294 | export declare type QueryObserverResult<TData = unknown, TError = unknown> = QueryObserverIdleResult<TData, TError> | QueryObserverLoadingErrorResult<TData, TError> | QueryObserverLoadingResult<TData, TError> | QueryObserverRefetchErrorResult<TData, TError> | QueryObserverSuccessResult<TData, TError>;
|
295 | export interface InfiniteQueryObserverBaseResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<InfiniteData<TData>, TError> {
|
296 | fetchNextPage: (options?: FetchNextPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
297 | fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
298 | hasNextPage?: boolean;
|
299 | hasPreviousPage?: boolean;
|
300 | isFetchingNextPage: boolean;
|
301 | isFetchingPreviousPage: boolean;
|
302 | }
|
303 | export interface InfiniteQueryObserverIdleResult<TData = unknown, TError = unknown> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
304 | data: undefined;
|
305 | error: null;
|
306 | isError: false;
|
307 | isIdle: true;
|
308 | isLoading: false;
|
309 | isLoadingError: false;
|
310 | isRefetchError: false;
|
311 | isSuccess: false;
|
312 | status: 'idle';
|
313 | }
|
314 | export interface InfiniteQueryObserverLoadingResult<TData = unknown, TError = unknown> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
315 | data: undefined;
|
316 | error: null;
|
317 | isError: false;
|
318 | isIdle: false;
|
319 | isLoading: true;
|
320 | isLoadingError: false;
|
321 | isRefetchError: false;
|
322 | isSuccess: false;
|
323 | status: 'loading';
|
324 | }
|
325 | export interface InfiniteQueryObserverLoadingErrorResult<TData = unknown, TError = unknown> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
326 | data: undefined;
|
327 | error: TError;
|
328 | isError: true;
|
329 | isIdle: false;
|
330 | isLoading: false;
|
331 | isLoadingError: true;
|
332 | isRefetchError: false;
|
333 | isSuccess: false;
|
334 | status: 'error';
|
335 | }
|
336 | export interface InfiniteQueryObserverRefetchErrorResult<TData = unknown, TError = unknown> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
337 | data: InfiniteData<TData>;
|
338 | error: TError;
|
339 | isError: true;
|
340 | isIdle: false;
|
341 | isLoading: false;
|
342 | isLoadingError: false;
|
343 | isRefetchError: true;
|
344 | isSuccess: false;
|
345 | status: 'error';
|
346 | }
|
347 | export interface InfiniteQueryObserverSuccessResult<TData = unknown, TError = unknown> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
348 | data: InfiniteData<TData>;
|
349 | error: null;
|
350 | isError: false;
|
351 | isIdle: false;
|
352 | isLoading: false;
|
353 | isLoadingError: false;
|
354 | isRefetchError: false;
|
355 | isSuccess: true;
|
356 | status: 'success';
|
357 | }
|
358 | export declare type InfiniteQueryObserverResult<TData = unknown, TError = unknown> = InfiniteQueryObserverIdleResult<TData, TError> | InfiniteQueryObserverLoadingErrorResult<TData, TError> | InfiniteQueryObserverLoadingResult<TData, TError> | InfiniteQueryObserverRefetchErrorResult<TData, TError> | InfiniteQueryObserverSuccessResult<TData, TError>;
|
359 | export declare type MutationKey = string | readonly unknown[];
|
360 | export declare type MutationStatus = 'idle' | 'loading' | 'success' | 'error';
|
361 | export declare type MutationMeta = Record<string, unknown>;
|
362 | export declare type MutationFunction<TData = unknown, TVariables = unknown> = (variables: TVariables) => Promise<TData>;
|
363 | export interface MutationOptions<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> {
|
364 | mutationFn?: MutationFunction<TData, TVariables>;
|
365 | mutationKey?: MutationKey;
|
366 | variables?: TVariables;
|
367 | onMutate?: (variables: TVariables) => Promise<TContext | undefined> | TContext | undefined;
|
368 | onSuccess?: (data: TData, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
|
369 | onError?: (error: TError, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
|
370 | onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
|
371 | retry?: RetryValue<TError>;
|
372 | retryDelay?: RetryDelayValue<TError>;
|
373 | _defaulted?: boolean;
|
374 | meta?: MutationMeta;
|
375 | }
|
376 | export interface MutationObserverOptions<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationOptions<TData, TError, TVariables, TContext> {
|
377 | useErrorBoundary?: boolean | ((error: TError) => boolean);
|
378 | }
|
379 | export interface MutateOptions<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> {
|
380 | onSuccess?: (data: TData, variables: TVariables, context: TContext) => Promise<unknown> | void;
|
381 | onError?: (error: TError, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
|
382 | onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
|
383 | }
|
384 | export declare type MutateFunction<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> = (variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TContext>) => Promise<TData>;
|
385 | export interface MutationObserverBaseResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationState<TData, TError, TVariables, TContext> {
|
386 | isError: boolean;
|
387 | isIdle: boolean;
|
388 | isLoading: boolean;
|
389 | isSuccess: boolean;
|
390 | mutate: MutateFunction<TData, TError, TVariables, TContext>;
|
391 | reset: () => void;
|
392 | }
|
393 | export interface MutationObserverIdleResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
394 | data: undefined;
|
395 | error: null;
|
396 | isError: false;
|
397 | isIdle: true;
|
398 | isLoading: false;
|
399 | isSuccess: false;
|
400 | status: 'idle';
|
401 | }
|
402 | export interface MutationObserverLoadingResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
403 | data: undefined;
|
404 | error: null;
|
405 | isError: false;
|
406 | isIdle: false;
|
407 | isLoading: true;
|
408 | isSuccess: false;
|
409 | status: 'loading';
|
410 | }
|
411 | export interface MutationObserverErrorResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
412 | data: undefined;
|
413 | error: TError;
|
414 | isError: true;
|
415 | isIdle: false;
|
416 | isLoading: false;
|
417 | isSuccess: false;
|
418 | status: 'error';
|
419 | }
|
420 | export interface MutationObserverSuccessResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
421 | data: TData;
|
422 | error: null;
|
423 | isError: false;
|
424 | isIdle: false;
|
425 | isLoading: false;
|
426 | isSuccess: true;
|
427 | status: 'success';
|
428 | }
|
429 | export declare type MutationObserverResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> = MutationObserverIdleResult<TData, TError, TVariables, TContext> | MutationObserverLoadingResult<TData, TError, TVariables, TContext> | MutationObserverErrorResult<TData, TError, TVariables, TContext> | MutationObserverSuccessResult<TData, TError, TVariables, TContext>;
|
430 | export interface QueryClientConfig {
|
431 | queryCache?: QueryCache;
|
432 | mutationCache?: MutationCache;
|
433 | defaultOptions?: DefaultOptions;
|
434 | }
|
435 | export interface DefaultOptions<TError = unknown> {
|
436 | queries?: QueryObserverOptions<unknown, TError>;
|
437 | mutations?: MutationObserverOptions<unknown, TError, unknown, unknown>;
|
438 | }
|
439 | export interface CancelOptions {
|
440 | revert?: boolean;
|
441 | silent?: boolean;
|
442 | }
|
443 | export interface SetDataOptions {
|
444 | updatedAt?: number;
|
445 | }
|