@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.
Files changed (73) hide show
  1. package/build/lib/index.d.ts +1 -1
  2. package/build/lib/index.esm.js +1 -1
  3. package/build/lib/index.js +1 -0
  4. package/build/lib/index.js.map +1 -1
  5. package/build/lib/index.mjs +1 -1
  6. package/build/lib/infiniteQueryObserver.d.ts +2 -2
  7. package/build/lib/infiniteQueryObserver.esm.js.map +1 -1
  8. package/build/lib/infiniteQueryObserver.js.map +1 -1
  9. package/build/lib/infiniteQueryObserver.mjs.map +1 -1
  10. package/build/lib/mutation.d.ts +3 -3
  11. package/build/lib/mutation.esm.js +6 -0
  12. package/build/lib/mutation.esm.js.map +1 -1
  13. package/build/lib/mutation.js +6 -0
  14. package/build/lib/mutation.js.map +1 -1
  15. package/build/lib/mutation.mjs +6 -0
  16. package/build/lib/mutation.mjs.map +1 -1
  17. package/build/lib/mutationCache.d.ts +4 -3
  18. package/build/lib/mutationCache.esm.js.map +1 -1
  19. package/build/lib/mutationCache.js.map +1 -1
  20. package/build/lib/mutationCache.mjs.map +1 -1
  21. package/build/lib/mutationObserver.d.ts +2 -2
  22. package/build/lib/mutationObserver.esm.js.map +1 -1
  23. package/build/lib/mutationObserver.js.map +1 -1
  24. package/build/lib/mutationObserver.mjs.map +1 -1
  25. package/build/lib/queriesObserver.esm.js +1 -5
  26. package/build/lib/queriesObserver.esm.js.map +1 -1
  27. package/build/lib/queriesObserver.js +1 -5
  28. package/build/lib/queriesObserver.js.map +1 -1
  29. package/build/lib/queriesObserver.mjs +1 -5
  30. package/build/lib/queriesObserver.mjs.map +1 -1
  31. package/build/lib/query.d.ts +4 -4
  32. package/build/lib/query.esm.js +2 -0
  33. package/build/lib/query.esm.js.map +1 -1
  34. package/build/lib/query.js +2 -0
  35. package/build/lib/query.js.map +1 -1
  36. package/build/lib/query.mjs +2 -0
  37. package/build/lib/query.mjs.map +1 -1
  38. package/build/lib/queryCache.d.ts +4 -3
  39. package/build/lib/queryCache.esm.js.map +1 -1
  40. package/build/lib/queryCache.js.map +1 -1
  41. package/build/lib/queryCache.mjs.map +1 -1
  42. package/build/lib/queryClient.d.ts +7 -7
  43. package/build/lib/queryClient.esm.js.map +1 -1
  44. package/build/lib/queryClient.js.map +1 -1
  45. package/build/lib/queryClient.mjs.map +1 -1
  46. package/build/lib/queryObserver.d.ts +2 -2
  47. package/build/lib/queryObserver.esm.js.map +1 -1
  48. package/build/lib/queryObserver.js.map +1 -1
  49. package/build/lib/queryObserver.mjs.map +1 -1
  50. package/build/lib/retryer.d.ts +5 -5
  51. package/build/lib/retryer.esm.js.map +1 -1
  52. package/build/lib/retryer.js.map +1 -1
  53. package/build/lib/retryer.mjs.map +1 -1
  54. package/build/lib/types.d.ts +38 -38
  55. package/build/umd/index.development.js +10 -5
  56. package/build/umd/index.development.js.map +1 -1
  57. package/build/umd/index.production.js +1 -1
  58. package/build/umd/index.production.js.map +1 -1
  59. package/package.json +1 -1
  60. package/src/index.ts +7 -1
  61. package/src/infiniteQueryObserver.ts +2 -2
  62. package/src/mutation.ts +21 -3
  63. package/src/mutationCache.ts +10 -3
  64. package/src/mutationObserver.ts +2 -2
  65. package/src/queriesObserver.ts +3 -7
  66. package/src/query.ts +14 -4
  67. package/src/queryCache.ts +8 -3
  68. package/src/queryClient.ts +7 -7
  69. package/src/queryObserver.ts +2 -2
  70. package/src/retryer.ts +5 -5
  71. package/src/tests/mutationCache.test.tsx +54 -10
  72. package/src/tests/queryCache.test.tsx +18 -6
  73. package/src/types.ts +44 -36
@@ -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 RegisteredError = Register extends {
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 interface QueryMeta {
36
- [index: string]: unknown;
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 = RegisteredError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> {
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 = RegisteredError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> extends QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey, TPageParam> {
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 = RegisteredError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = WithRequired<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, 'throwErrors' | 'refetchOnReconnect'>;
187
- export interface InfiniteQueryObserverOptions<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends QueryObserverOptions<TQueryFnData, TError, TData, InfiniteData<TQueryData>, TQueryKey, TPageParam>, InfiniteQueryPageParamsOptions<TQueryFnData, TPageParam> {
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 = RegisteredError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = WithRequired<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, 'throwErrors' | 'refetchOnReconnect'>;
190
- export interface FetchQueryOptions<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> extends WithRequired<QueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, 'queryKey'> {
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 = RegisteredError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends FetchQueryOptions<TQueryFnData, TError, InfiniteData<TData>, TQueryKey, TPageParam>, DefaultPageParam<TPageParam> {
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 = RegisteredError> {
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 = RegisteredError> extends QueryObserverBaseResult<TData, 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 = RegisteredError> extends QueryObserverBaseResult<TData, 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 = RegisteredError> extends QueryObserverBaseResult<TData, 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 = RegisteredError> extends QueryObserverBaseResult<TData, 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 = RegisteredError> = QueryObserverRefetchErrorResult<TData, TError> | QueryObserverSuccessResult<TData, TError>;
293
- export declare type QueryObserverResult<TData = unknown, TError = RegisteredError> = DefinedQueryObserverResult<TData, TError> | QueryObserverLoadingErrorResult<TData, TError> | QueryObserverLoadingResult<TData, TError>;
294
- export interface InfiniteQueryObserverBaseResult<TData = unknown, TError = RegisteredError> extends QueryObserverBaseResult<TData, 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 = RegisteredError> extends InfiniteQueryObserverBaseResult<TData, 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 = RegisteredError> extends InfiniteQueryObserverBaseResult<TData, 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 = RegisteredError> extends InfiniteQueryObserverBaseResult<TData, 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 = RegisteredError> extends InfiniteQueryObserverBaseResult<TData, 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 = RegisteredError> = InfiniteQueryObserverLoadingErrorResult<TData, TError> | InfiniteQueryObserverLoadingResult<TData, TError> | InfiniteQueryObserverRefetchErrorResult<TData, TError> | InfiniteQueryObserverSuccessResult<TData, 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 interface MutationMeta {
346
- [index: string]: unknown;
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 = RegisteredError, TVariables = void, TContext = unknown> {
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 = RegisteredError, TVariables = void, TContext = unknown> extends MutationOptions<TData, TError, TVariables, TContext> {
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 = RegisteredError, TVariables = void, TContext = unknown> {
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 = RegisteredError, TVariables = void, TContext = unknown> = (variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TContext>) => Promise<TData>;
372
- export interface MutationObserverBaseResult<TData = unknown, TError = RegisteredError, TVariables = void, TContext = unknown> extends MutationState<TData, TError, TVariables, TContext> {
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 = RegisteredError, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
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 = RegisteredError, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
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 = RegisteredError, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
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 = RegisteredError, TVariables = void, TContext = unknown> extends MutationObserverBaseResult<TData, TError, TVariables, TContext> {
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 = RegisteredError, TVariables = void, TContext = unknown> = MutationObserverIdleResult<TData, TError, TVariables, TContext> | MutationObserverLoadingResult<TData, TError, TVariables, TContext> | MutationObserverErrorResult<TData, TError, TVariables, TContext> | MutationObserverSuccessResult<TData, TError, TVariables, TContext>;
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 = RegisteredError> {
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.#observersMap[defaultedOptions.queryHash];
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;