@tanstack/query-core 5.0.0-alpha.1 → 5.0.0-alpha.2
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/lib/index.d.ts +1 -1
- package/build/lib/index.esm.js +1 -1
- package/build/lib/index.js +1 -0
- package/build/lib/index.js.map +1 -1
- package/build/lib/index.mjs +1 -1
- package/build/lib/infiniteQueryObserver.d.ts +2 -2
- package/build/lib/infiniteQueryObserver.esm.js.map +1 -1
- package/build/lib/infiniteQueryObserver.js.map +1 -1
- package/build/lib/infiniteQueryObserver.mjs.map +1 -1
- package/build/lib/mutation.d.ts +3 -3
- package/build/lib/mutation.esm.js +6 -0
- package/build/lib/mutation.esm.js.map +1 -1
- package/build/lib/mutation.js +6 -0
- package/build/lib/mutation.js.map +1 -1
- package/build/lib/mutation.mjs +6 -0
- package/build/lib/mutation.mjs.map +1 -1
- package/build/lib/mutationCache.d.ts +4 -3
- package/build/lib/mutationCache.esm.js.map +1 -1
- package/build/lib/mutationCache.js.map +1 -1
- package/build/lib/mutationCache.mjs.map +1 -1
- package/build/lib/mutationObserver.d.ts +2 -2
- package/build/lib/mutationObserver.esm.js.map +1 -1
- package/build/lib/mutationObserver.js.map +1 -1
- package/build/lib/mutationObserver.mjs.map +1 -1
- package/build/lib/queriesObserver.esm.js +1 -5
- package/build/lib/queriesObserver.esm.js.map +1 -1
- package/build/lib/queriesObserver.js +1 -5
- package/build/lib/queriesObserver.js.map +1 -1
- package/build/lib/queriesObserver.mjs +1 -5
- package/build/lib/queriesObserver.mjs.map +1 -1
- package/build/lib/query.d.ts +4 -4
- package/build/lib/query.esm.js +2 -0
- package/build/lib/query.esm.js.map +1 -1
- package/build/lib/query.js +2 -0
- package/build/lib/query.js.map +1 -1
- package/build/lib/query.mjs +2 -0
- package/build/lib/query.mjs.map +1 -1
- package/build/lib/queryCache.d.ts +4 -3
- package/build/lib/queryCache.esm.js.map +1 -1
- package/build/lib/queryCache.js.map +1 -1
- package/build/lib/queryCache.mjs.map +1 -1
- package/build/lib/queryClient.d.ts +7 -7
- package/build/lib/queryClient.esm.js.map +1 -1
- package/build/lib/queryClient.js.map +1 -1
- package/build/lib/queryClient.mjs.map +1 -1
- package/build/lib/queryObserver.d.ts +2 -2
- package/build/lib/queryObserver.esm.js.map +1 -1
- package/build/lib/queryObserver.js.map +1 -1
- package/build/lib/queryObserver.mjs.map +1 -1
- package/build/lib/retryer.d.ts +5 -5
- package/build/lib/retryer.esm.js.map +1 -1
- package/build/lib/retryer.js.map +1 -1
- package/build/lib/retryer.mjs.map +1 -1
- package/build/lib/types.d.ts +38 -38
- package/build/umd/index.development.js +10 -5
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +7 -1
- package/src/infiniteQueryObserver.ts +2 -2
- package/src/mutation.ts +21 -3
- package/src/mutationCache.ts +10 -3
- package/src/mutationObserver.ts +2 -2
- package/src/queriesObserver.ts +3 -7
- package/src/query.ts +14 -4
- package/src/queryCache.ts +8 -3
- package/src/queryClient.ts +7 -7
- package/src/queryObserver.ts +2 -2
- package/src/retryer.ts +5 -5
- package/src/tests/mutationCache.test.tsx +54 -10
- package/src/tests/queryCache.test.tsx +18 -6
- package/src/types.ts +44 -36
package/build/lib/types.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { QueryCache } from './queryCache';
|
|
|
6
6
|
import type { MutationCache } from './mutationCache';
|
|
7
7
|
export interface Register {
|
|
8
8
|
}
|
|
9
|
-
export declare type
|
|
9
|
+
export declare type DefaultError = Register extends {
|
|
10
10
|
defaultError: infer TError;
|
|
11
11
|
} ? TError : Error;
|
|
12
12
|
export declare type QueryKey = readonly unknown[];
|
|
@@ -32,11 +32,11 @@ export interface InfiniteData<TData> {
|
|
|
32
32
|
pages: TData[];
|
|
33
33
|
pageParams: unknown[];
|
|
34
34
|
}
|
|
35
|
-
export
|
|
36
|
-
|
|
37
|
-
}
|
|
35
|
+
export declare type QueryMeta = Register extends {
|
|
36
|
+
queryMeta: infer TQueryMeta;
|
|
37
|
+
} ? TQueryMeta extends Record<string, unknown> ? TQueryMeta : Record<string, unknown> : Record<string, unknown>;
|
|
38
38
|
export declare type NetworkMode = 'online' | 'always' | 'offlineFirst';
|
|
39
|
-
export interface QueryOptions<TQueryFnData = unknown, TError =
|
|
39
|
+
export interface QueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> {
|
|
40
40
|
/**
|
|
41
41
|
* If `false`, failed queries will not retry by default.
|
|
42
42
|
* If `true`, failed queries will retry infinitely., failureCount: num
|
|
@@ -87,7 +87,7 @@ export interface InfiniteQueryPageParamsOptions<TQueryFnData = unknown, TPagePar
|
|
|
87
87
|
getNextPageParam: GetNextPageParamFunction<TPageParam, TQueryFnData>;
|
|
88
88
|
}
|
|
89
89
|
export declare type ThrowErrors<TQueryFnData, TError, TQueryData, TQueryKey extends QueryKey> = boolean | ((error: TError, query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean);
|
|
90
|
-
export interface QueryObserverOptions<TQueryFnData = unknown, TError =
|
|
90
|
+
export interface QueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> extends QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey, TPageParam> {
|
|
91
91
|
/**
|
|
92
92
|
* Set this to `false` to disable automatic refetching when the query mounts or changes query keys.
|
|
93
93
|
* To refetch the query, use the `refetch` method returned from the `useQuery` instance.
|
|
@@ -183,18 +183,18 @@ export interface QueryObserverOptions<TQueryFnData = unknown, TError = Registere
|
|
|
183
183
|
_optimisticResults?: 'optimistic' | 'isRestoring';
|
|
184
184
|
}
|
|
185
185
|
export declare type WithRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
|
|
186
|
-
export declare type DefaultedQueryObserverOptions<TQueryFnData = unknown, TError =
|
|
187
|
-
export interface InfiniteQueryObserverOptions<TQueryFnData = unknown, TError =
|
|
186
|
+
export declare type DefaultedQueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = WithRequired<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, 'throwErrors' | 'refetchOnReconnect'>;
|
|
187
|
+
export interface InfiniteQueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends QueryObserverOptions<TQueryFnData, TError, TData, InfiniteData<TQueryData>, TQueryKey, TPageParam>, InfiniteQueryPageParamsOptions<TQueryFnData, TPageParam> {
|
|
188
188
|
}
|
|
189
|
-
export declare type DefaultedInfiniteQueryObserverOptions<TQueryFnData = unknown, TError =
|
|
190
|
-
export interface FetchQueryOptions<TQueryFnData = unknown, TError =
|
|
189
|
+
export declare type DefaultedInfiniteQueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = WithRequired<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, 'throwErrors' | 'refetchOnReconnect'>;
|
|
190
|
+
export interface FetchQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> extends WithRequired<QueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, 'queryKey'> {
|
|
191
191
|
/**
|
|
192
192
|
* The time in milliseconds after data is considered stale.
|
|
193
193
|
* If the data is fresh it will be returned from the cache.
|
|
194
194
|
*/
|
|
195
195
|
staleTime?: number;
|
|
196
196
|
}
|
|
197
|
-
export interface FetchInfiniteQueryOptions<TQueryFnData = unknown, TError =
|
|
197
|
+
export interface FetchInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends FetchQueryOptions<TQueryFnData, TError, InfiniteData<TData>, TQueryKey, TPageParam>, DefaultPageParam<TPageParam> {
|
|
198
198
|
}
|
|
199
199
|
export interface ResultOptions {
|
|
200
200
|
throwOnError?: boolean;
|
|
@@ -219,7 +219,7 @@ export interface FetchPreviousPageOptions extends ResultOptions {
|
|
|
219
219
|
}
|
|
220
220
|
export declare type QueryStatus = 'pending' | 'error' | 'success';
|
|
221
221
|
export declare type FetchStatus = 'fetching' | 'paused' | 'idle';
|
|
222
|
-
export interface QueryObserverBaseResult<TData = unknown, TError =
|
|
222
|
+
export interface QueryObserverBaseResult<TData = unknown, TError = DefaultError> {
|
|
223
223
|
data: TData | undefined;
|
|
224
224
|
dataUpdatedAt: number;
|
|
225
225
|
error: TError | null;
|
|
@@ -249,7 +249,7 @@ export interface QueryObserverBaseResult<TData = unknown, TError = RegisteredErr
|
|
|
249
249
|
status: QueryStatus;
|
|
250
250
|
fetchStatus: FetchStatus;
|
|
251
251
|
}
|
|
252
|
-
export interface QueryObserverLoadingResult<TData = unknown, TError =
|
|
252
|
+
export interface QueryObserverLoadingResult<TData = unknown, TError = DefaultError> extends QueryObserverBaseResult<TData, TError> {
|
|
253
253
|
data: undefined;
|
|
254
254
|
error: null;
|
|
255
255
|
isError: false;
|
|
@@ -259,7 +259,7 @@ export interface QueryObserverLoadingResult<TData = unknown, TError = Registered
|
|
|
259
259
|
isSuccess: false;
|
|
260
260
|
status: 'pending';
|
|
261
261
|
}
|
|
262
|
-
export interface QueryObserverLoadingErrorResult<TData = unknown, TError =
|
|
262
|
+
export interface QueryObserverLoadingErrorResult<TData = unknown, TError = DefaultError> extends QueryObserverBaseResult<TData, TError> {
|
|
263
263
|
data: undefined;
|
|
264
264
|
error: TError;
|
|
265
265
|
isError: true;
|
|
@@ -269,7 +269,7 @@ export interface QueryObserverLoadingErrorResult<TData = unknown, TError = Regis
|
|
|
269
269
|
isSuccess: false;
|
|
270
270
|
status: 'error';
|
|
271
271
|
}
|
|
272
|
-
export interface QueryObserverRefetchErrorResult<TData = unknown, TError =
|
|
272
|
+
export interface QueryObserverRefetchErrorResult<TData = unknown, TError = DefaultError> extends QueryObserverBaseResult<TData, TError> {
|
|
273
273
|
data: TData;
|
|
274
274
|
error: TError;
|
|
275
275
|
isError: true;
|
|
@@ -279,7 +279,7 @@ export interface QueryObserverRefetchErrorResult<TData = unknown, TError = Regis
|
|
|
279
279
|
isSuccess: false;
|
|
280
280
|
status: 'error';
|
|
281
281
|
}
|
|
282
|
-
export interface QueryObserverSuccessResult<TData = unknown, TError =
|
|
282
|
+
export interface QueryObserverSuccessResult<TData = unknown, TError = DefaultError> extends QueryObserverBaseResult<TData, TError> {
|
|
283
283
|
data: TData;
|
|
284
284
|
error: null;
|
|
285
285
|
isError: false;
|
|
@@ -289,9 +289,9 @@ export interface QueryObserverSuccessResult<TData = unknown, TError = Registered
|
|
|
289
289
|
isSuccess: true;
|
|
290
290
|
status: 'success';
|
|
291
291
|
}
|
|
292
|
-
export declare type DefinedQueryObserverResult<TData = unknown, TError =
|
|
293
|
-
export declare type QueryObserverResult<TData = unknown, TError =
|
|
294
|
-
export interface InfiniteQueryObserverBaseResult<TData = unknown, TError =
|
|
292
|
+
export declare type DefinedQueryObserverResult<TData = unknown, TError = DefaultError> = QueryObserverRefetchErrorResult<TData, TError> | QueryObserverSuccessResult<TData, TError>;
|
|
293
|
+
export declare type QueryObserverResult<TData = unknown, TError = DefaultError> = DefinedQueryObserverResult<TData, TError> | QueryObserverLoadingErrorResult<TData, TError> | QueryObserverLoadingResult<TData, TError>;
|
|
294
|
+
export interface InfiniteQueryObserverBaseResult<TData = unknown, TError = DefaultError> extends QueryObserverBaseResult<TData, TError> {
|
|
295
295
|
fetchNextPage: (options?: FetchNextPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
|
296
296
|
fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
|
297
297
|
hasNextPage: boolean;
|
|
@@ -299,7 +299,7 @@ export interface InfiniteQueryObserverBaseResult<TData = unknown, TError = Regis
|
|
|
299
299
|
isFetchingNextPage: boolean;
|
|
300
300
|
isFetchingPreviousPage: boolean;
|
|
301
301
|
}
|
|
302
|
-
export interface InfiniteQueryObserverLoadingResult<TData = unknown, TError =
|
|
302
|
+
export interface InfiniteQueryObserverLoadingResult<TData = unknown, TError = DefaultError> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
303
303
|
data: undefined;
|
|
304
304
|
error: null;
|
|
305
305
|
isError: false;
|
|
@@ -309,7 +309,7 @@ export interface InfiniteQueryObserverLoadingResult<TData = unknown, TError = Re
|
|
|
309
309
|
isSuccess: false;
|
|
310
310
|
status: 'pending';
|
|
311
311
|
}
|
|
312
|
-
export interface InfiniteQueryObserverLoadingErrorResult<TData = unknown, TError =
|
|
312
|
+
export interface InfiniteQueryObserverLoadingErrorResult<TData = unknown, TError = DefaultError> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
313
313
|
data: undefined;
|
|
314
314
|
error: TError;
|
|
315
315
|
isError: true;
|
|
@@ -319,7 +319,7 @@ export interface InfiniteQueryObserverLoadingErrorResult<TData = unknown, TError
|
|
|
319
319
|
isSuccess: false;
|
|
320
320
|
status: 'error';
|
|
321
321
|
}
|
|
322
|
-
export interface InfiniteQueryObserverRefetchErrorResult<TData = unknown, TError =
|
|
322
|
+
export interface InfiniteQueryObserverRefetchErrorResult<TData = unknown, TError = DefaultError> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
323
323
|
data: TData;
|
|
324
324
|
error: TError;
|
|
325
325
|
isError: true;
|
|
@@ -329,7 +329,7 @@ export interface InfiniteQueryObserverRefetchErrorResult<TData = unknown, TError
|
|
|
329
329
|
isSuccess: false;
|
|
330
330
|
status: 'error';
|
|
331
331
|
}
|
|
332
|
-
export interface InfiniteQueryObserverSuccessResult<TData = unknown, TError =
|
|
332
|
+
export interface InfiniteQueryObserverSuccessResult<TData = unknown, TError = DefaultError> extends InfiniteQueryObserverBaseResult<TData, TError> {
|
|
333
333
|
data: TData;
|
|
334
334
|
error: null;
|
|
335
335
|
isError: false;
|
|
@@ -339,14 +339,14 @@ export interface InfiniteQueryObserverSuccessResult<TData = unknown, TError = Re
|
|
|
339
339
|
isSuccess: true;
|
|
340
340
|
status: 'success';
|
|
341
341
|
}
|
|
342
|
-
export declare type InfiniteQueryObserverResult<TData = unknown, TError =
|
|
342
|
+
export declare type InfiniteQueryObserverResult<TData = unknown, TError = DefaultError> = InfiniteQueryObserverLoadingErrorResult<TData, TError> | InfiniteQueryObserverLoadingResult<TData, TError> | InfiniteQueryObserverRefetchErrorResult<TData, TError> | InfiniteQueryObserverSuccessResult<TData, TError>;
|
|
343
343
|
export declare type MutationKey = readonly unknown[];
|
|
344
344
|
export declare type MutationStatus = 'idle' | 'pending' | 'success' | 'error';
|
|
345
|
-
export
|
|
346
|
-
|
|
347
|
-
}
|
|
345
|
+
export declare type MutationMeta = Register extends {
|
|
346
|
+
mutationMeta: infer TMutationMeta;
|
|
347
|
+
} ? TMutationMeta : Record<string, unknown>;
|
|
348
348
|
export declare type MutationFunction<TData = unknown, TVariables = unknown> = (variables: TVariables) => Promise<TData>;
|
|
349
|
-
export interface MutationOptions<TData = unknown, TError =
|
|
349
|
+
export interface MutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> {
|
|
350
350
|
mutationFn?: MutationFunction<TData, TVariables>;
|
|
351
351
|
mutationKey?: MutationKey;
|
|
352
352
|
onMutate?: (variables: TVariables) => Promise<TContext | undefined> | TContext | undefined;
|
|
@@ -360,16 +360,16 @@ export interface MutationOptions<TData = unknown, TError = RegisteredError, TVar
|
|
|
360
360
|
_defaulted?: boolean;
|
|
361
361
|
meta?: MutationMeta;
|
|
362
362
|
}
|
|
363
|
-
export interface MutationObserverOptions<TData = unknown, TError =
|
|
363
|
+
export interface MutationObserverOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends MutationOptions<TData, TError, TVariables, TContext> {
|
|
364
364
|
throwErrors?: boolean | ((error: TError) => boolean);
|
|
365
365
|
}
|
|
366
|
-
export interface MutateOptions<TData = unknown, TError =
|
|
366
|
+
export interface MutateOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> {
|
|
367
367
|
onSuccess?: (data: TData, variables: TVariables, context: TContext) => void;
|
|
368
368
|
onError?: (error: TError, variables: TVariables, context: TContext | undefined) => void;
|
|
369
369
|
onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => void;
|
|
370
370
|
}
|
|
371
|
-
export declare type MutateFunction<TData = unknown, TError =
|
|
372
|
-
export interface MutationObserverBaseResult<TData = unknown, TError =
|
|
371
|
+
export declare type MutateFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = (variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TContext>) => Promise<TData>;
|
|
372
|
+
export interface MutationObserverBaseResult<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends MutationState<TData, TError, TVariables, TContext> {
|
|
373
373
|
isError: boolean;
|
|
374
374
|
isIdle: boolean;
|
|
375
375
|
isPending: boolean;
|
|
@@ -377,7 +377,7 @@ export interface MutationObserverBaseResult<TData = unknown, TError = Registered
|
|
|
377
377
|
mutate: MutateFunction<TData, TError, TVariables, TContext>;
|
|
378
378
|
reset: () => void;
|
|
379
379
|
}
|
|
380
|
-
export interface MutationObserverIdleResult<TData = unknown, TError =
|
|
380
|
+
export interface MutationObserverIdleResult<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
381
381
|
data: undefined;
|
|
382
382
|
variables: undefined;
|
|
383
383
|
error: null;
|
|
@@ -387,7 +387,7 @@ export interface MutationObserverIdleResult<TData = unknown, TError = Registered
|
|
|
387
387
|
isSuccess: false;
|
|
388
388
|
status: 'idle';
|
|
389
389
|
}
|
|
390
|
-
export interface MutationObserverLoadingResult<TData = unknown, TError =
|
|
390
|
+
export interface MutationObserverLoadingResult<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
391
391
|
data: undefined;
|
|
392
392
|
variables: TVariables;
|
|
393
393
|
error: null;
|
|
@@ -397,7 +397,7 @@ export interface MutationObserverLoadingResult<TData = unknown, TError = Registe
|
|
|
397
397
|
isSuccess: false;
|
|
398
398
|
status: 'pending';
|
|
399
399
|
}
|
|
400
|
-
export interface MutationObserverErrorResult<TData = unknown, TError =
|
|
400
|
+
export interface MutationObserverErrorResult<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
401
401
|
data: undefined;
|
|
402
402
|
error: TError;
|
|
403
403
|
variables: TVariables;
|
|
@@ -407,7 +407,7 @@ export interface MutationObserverErrorResult<TData = unknown, TError = Registere
|
|
|
407
407
|
isSuccess: false;
|
|
408
408
|
status: 'error';
|
|
409
409
|
}
|
|
410
|
-
export interface MutationObserverSuccessResult<TData = unknown, TError =
|
|
410
|
+
export interface MutationObserverSuccessResult<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
|
|
411
411
|
data: TData;
|
|
412
412
|
error: null;
|
|
413
413
|
variables: TVariables;
|
|
@@ -417,13 +417,13 @@ export interface MutationObserverSuccessResult<TData = unknown, TError = Registe
|
|
|
417
417
|
isSuccess: true;
|
|
418
418
|
status: 'success';
|
|
419
419
|
}
|
|
420
|
-
export declare type MutationObserverResult<TData = unknown, TError =
|
|
420
|
+
export declare type MutationObserverResult<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = MutationObserverIdleResult<TData, TError, TVariables, TContext> | MutationObserverLoadingResult<TData, TError, TVariables, TContext> | MutationObserverErrorResult<TData, TError, TVariables, TContext> | MutationObserverSuccessResult<TData, TError, TVariables, TContext>;
|
|
421
421
|
export interface QueryClientConfig {
|
|
422
422
|
queryCache?: QueryCache;
|
|
423
423
|
mutationCache?: MutationCache;
|
|
424
424
|
defaultOptions?: DefaultOptions;
|
|
425
425
|
}
|
|
426
|
-
export interface DefaultOptions<TError =
|
|
426
|
+
export interface DefaultOptions<TError = DefaultError> {
|
|
427
427
|
queries?: QueryObserverOptions<unknown, TError>;
|
|
428
428
|
mutations?: MutationObserverOptions<unknown, TError, unknown, unknown>;
|
|
429
429
|
}
|
|
@@ -889,6 +889,7 @@
|
|
|
889
889
|
if (!isCancelledError(error)) {
|
|
890
890
|
// Notify cache callback
|
|
891
891
|
this.#cache.config.onError?.(error, this);
|
|
892
|
+
this.#cache.config.onSettled?.(this.state.data, error, this);
|
|
892
893
|
}
|
|
893
894
|
if (!this.isFetchingOptimistic) {
|
|
894
895
|
// Schedule query gc after fetching
|
|
@@ -913,6 +914,7 @@
|
|
|
913
914
|
|
|
914
915
|
// Notify cache callback
|
|
915
916
|
this.#cache.config.onSuccess?.(data, this);
|
|
917
|
+
this.#cache.config.onSettled?.(data, this.state.error, this);
|
|
916
918
|
if (!this.isFetchingOptimistic) {
|
|
917
919
|
// Schedule query gc after fetching
|
|
918
920
|
this.scheduleGc();
|
|
@@ -1258,6 +1260,9 @@
|
|
|
1258
1260
|
// Notify cache callback
|
|
1259
1261
|
await this.#mutationCache.config.onSuccess?.(data, variables, this.state.context, this);
|
|
1260
1262
|
await this.options.onSuccess?.(data, variables, this.state.context);
|
|
1263
|
+
|
|
1264
|
+
// Notify cache callback
|
|
1265
|
+
await this.#mutationCache.config.onSettled?.(data, null, this.state.variables, this.state.context, this);
|
|
1261
1266
|
await this.options.onSettled?.(data, null, variables, this.state.context);
|
|
1262
1267
|
this.#dispatch({
|
|
1263
1268
|
type: 'success',
|
|
@@ -1269,6 +1274,9 @@
|
|
|
1269
1274
|
// Notify cache callback
|
|
1270
1275
|
await this.#mutationCache.config.onError?.(error, variables, this.state.context, this);
|
|
1271
1276
|
await this.options.onError?.(error, variables, this.state.context);
|
|
1277
|
+
|
|
1278
|
+
// Notify cache callback
|
|
1279
|
+
await this.#mutationCache.config.onSettled?.(undefined, error, this.state.variables, this.state.context, this);
|
|
1272
1280
|
await this.options.onSettled?.(undefined, error, variables, this.state.context);
|
|
1273
1281
|
throw error;
|
|
1274
1282
|
} finally {
|
|
@@ -2266,14 +2274,12 @@
|
|
|
2266
2274
|
#result;
|
|
2267
2275
|
#queries;
|
|
2268
2276
|
#observers;
|
|
2269
|
-
#observersMap;
|
|
2270
2277
|
constructor(client, queries) {
|
|
2271
2278
|
super();
|
|
2272
2279
|
this.#client = client;
|
|
2273
2280
|
this.#queries = [];
|
|
2274
2281
|
this.#result = [];
|
|
2275
2282
|
this.#observers = [];
|
|
2276
|
-
this.#observersMap = {};
|
|
2277
2283
|
if (queries) {
|
|
2278
2284
|
this.setQueries(queries);
|
|
2279
2285
|
}
|
|
@@ -2307,14 +2313,12 @@
|
|
|
2307
2313
|
// set options for the new observers to notify of changes
|
|
2308
2314
|
newObserverMatches.forEach(match => match.observer.setOptions(match.defaultedQueryOptions, notifyOptions));
|
|
2309
2315
|
const newObservers = newObserverMatches.map(match => match.observer);
|
|
2310
|
-
const newObserversMap = Object.fromEntries(newObservers.map(observer => [observer.options.queryHash, observer]));
|
|
2311
2316
|
const newResult = newObservers.map(observer => observer.getCurrentResult());
|
|
2312
2317
|
const hasIndexChange = newObservers.some((observer, index) => observer !== prevObservers[index]);
|
|
2313
2318
|
if (prevObservers.length === newObservers.length && !hasIndexChange) {
|
|
2314
2319
|
return;
|
|
2315
2320
|
}
|
|
2316
2321
|
this.#observers = newObservers;
|
|
2317
|
-
this.#observersMap = newObserversMap;
|
|
2318
2322
|
this.#result = newResult;
|
|
2319
2323
|
if (!this.hasListeners()) {
|
|
2320
2324
|
return;
|
|
@@ -2359,7 +2363,7 @@
|
|
|
2359
2363
|
const unmatchedQueries = defaultedQueryOptions.filter(defaultedOptions => !matchedQueryHashes.includes(defaultedOptions.queryHash));
|
|
2360
2364
|
const getObserver = options => {
|
|
2361
2365
|
const defaultedOptions = this.#client.defaultQueryOptions(options);
|
|
2362
|
-
const currentObserver = this.#
|
|
2366
|
+
const currentObserver = this.#observers.find(o => o.options.queryHash === defaultedOptions.queryHash);
|
|
2363
2367
|
return currentObserver ?? new QueryObserver(this.#client, defaultedOptions);
|
|
2364
2368
|
};
|
|
2365
2369
|
const newOrReusedObservers = unmatchedQueries.map(options => {
|
|
@@ -2660,6 +2664,7 @@
|
|
|
2660
2664
|
exports.isCancelledError = isCancelledError;
|
|
2661
2665
|
exports.isServer = isServer;
|
|
2662
2666
|
exports.keepPreviousData = keepPreviousData;
|
|
2667
|
+
exports.matchQuery = matchQuery;
|
|
2663
2668
|
exports.notifyManager = notifyManager;
|
|
2664
2669
|
exports.onlineManager = onlineManager;
|
|
2665
2670
|
exports.replaceEqualDeep = replaceEqualDeep;
|