@tanstack/query-core 4.0.11-beta.0 → 4.1.3

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 (97) hide show
  1. package/build/cjs/focusManager.js +101 -0
  2. package/build/cjs/focusManager.js.map +1 -0
  3. package/build/cjs/hydration.js +112 -0
  4. package/build/cjs/hydration.js.map +1 -0
  5. package/build/cjs/index.js +51 -0
  6. package/build/cjs/index.js.map +1 -0
  7. package/build/cjs/infiniteQueryBehavior.js +160 -0
  8. package/build/cjs/infiniteQueryBehavior.js.map +1 -0
  9. package/build/cjs/infiniteQueryObserver.js +92 -0
  10. package/build/cjs/infiniteQueryObserver.js.map +1 -0
  11. package/build/cjs/logger.js +18 -0
  12. package/build/cjs/logger.js.map +1 -0
  13. package/build/cjs/mutation.js +258 -0
  14. package/build/cjs/mutation.js.map +1 -0
  15. package/build/cjs/mutationCache.js +99 -0
  16. package/build/cjs/mutationCache.js.map +1 -0
  17. package/build/cjs/mutationObserver.js +140 -0
  18. package/build/cjs/mutationObserver.js.map +1 -0
  19. package/build/cjs/notifyManager.js +114 -0
  20. package/build/cjs/notifyManager.js.map +1 -0
  21. package/build/cjs/onlineManager.js +100 -0
  22. package/build/cjs/onlineManager.js.map +1 -0
  23. package/build/cjs/queriesObserver.js +170 -0
  24. package/build/cjs/queriesObserver.js.map +1 -0
  25. package/build/cjs/query.js +474 -0
  26. package/build/cjs/query.js.map +1 -0
  27. package/build/cjs/queryCache.js +140 -0
  28. package/build/cjs/queryCache.js.map +1 -0
  29. package/build/cjs/queryClient.js +353 -0
  30. package/build/cjs/queryClient.js.map +1 -0
  31. package/build/cjs/queryObserver.js +529 -0
  32. package/build/cjs/queryObserver.js.map +1 -0
  33. package/build/cjs/removable.js +47 -0
  34. package/build/cjs/removable.js.map +1 -0
  35. package/build/cjs/retryer.js +177 -0
  36. package/build/cjs/retryer.js.map +1 -0
  37. package/build/cjs/subscribable.js +43 -0
  38. package/build/cjs/subscribable.js.map +1 -0
  39. package/build/cjs/utils.js +356 -0
  40. package/build/cjs/utils.js.map +1 -0
  41. package/build/{lib/index.mjs → esm/index.js} +18 -1
  42. package/build/esm/index.js.map +1 -0
  43. package/build/stats-html.html +2689 -0
  44. package/build/stats.json +811 -0
  45. package/build/{lib → types/packages/query-core/src}/focusManager.d.ts +0 -0
  46. package/build/{lib → types/packages/query-core/src}/hydration.d.ts +0 -0
  47. package/build/{lib → types/packages/query-core/src}/index.d.ts +2 -2
  48. package/build/{lib → types/packages/query-core/src}/infiniteQueryBehavior.d.ts +0 -0
  49. package/build/{lib → types/packages/query-core/src}/infiniteQueryObserver.d.ts +0 -0
  50. package/build/{lib → types/packages/query-core/src}/logger.d.ts +0 -0
  51. package/build/{lib → types/packages/query-core/src}/logger.native.d.ts +0 -0
  52. package/build/{lib → types/packages/query-core/src}/mutation.d.ts +0 -0
  53. package/build/{lib → types/packages/query-core/src}/mutationCache.d.ts +6 -1
  54. package/build/{lib → types/packages/query-core/src}/mutationObserver.d.ts +0 -0
  55. package/build/{lib → types/packages/query-core/src}/notifyManager.d.ts +0 -0
  56. package/build/{lib → types/packages/query-core/src}/onlineManager.d.ts +0 -0
  57. package/build/{lib → types/packages/query-core/src}/queriesObserver.d.ts +0 -0
  58. package/build/{lib → types/packages/query-core/src}/query.d.ts +0 -0
  59. package/build/{lib → types/packages/query-core/src}/queryCache.d.ts +6 -1
  60. package/build/{lib → types/packages/query-core/src}/queryClient.d.ts +0 -0
  61. package/build/{lib → types/packages/query-core/src}/queryObserver.d.ts +0 -0
  62. package/build/{lib → types/packages/query-core/src}/removable.d.ts +0 -0
  63. package/build/{lib → types/packages/query-core/src}/retryer.d.ts +0 -0
  64. package/build/{lib → types/packages/query-core/src}/subscribable.d.ts +0 -0
  65. package/build/types/packages/query-core/src/tests/focusManager.test.d.ts +1 -0
  66. package/build/types/packages/query-core/src/tests/hydration.test.d.ts +1 -0
  67. package/build/types/packages/query-core/src/tests/infiniteQueryBehavior.test.d.ts +1 -0
  68. package/build/types/packages/query-core/src/tests/infiniteQueryObserver.test.d.ts +1 -0
  69. package/build/types/packages/query-core/src/tests/mutationCache.test.d.ts +1 -0
  70. package/build/types/packages/query-core/src/tests/mutationObserver.test.d.ts +1 -0
  71. package/build/types/packages/query-core/src/tests/mutations.test.d.ts +1 -0
  72. package/build/types/packages/query-core/src/tests/notifyManager.test.d.ts +1 -0
  73. package/build/types/packages/query-core/src/tests/onlineManager.test.d.ts +1 -0
  74. package/build/types/packages/query-core/src/tests/queriesObserver.test.d.ts +1 -0
  75. package/build/types/packages/query-core/src/tests/query.test.d.ts +1 -0
  76. package/build/types/packages/query-core/src/tests/queryCache.test.d.ts +1 -0
  77. package/build/types/packages/query-core/src/tests/queryClient.test.d.ts +1 -0
  78. package/build/types/packages/query-core/src/tests/queryObserver.test.d.ts +1 -0
  79. package/build/types/packages/query-core/src/tests/utils.test.d.ts +1 -0
  80. package/build/{lib → types/packages/query-core/src}/types.d.ts +8 -7
  81. package/build/{lib → types/packages/query-core/src}/utils.d.ts +0 -0
  82. package/build/types/tests/utils.d.ts +24 -0
  83. package/build/umd/index.development.js +17 -0
  84. package/build/umd/index.development.js.map +1 -1
  85. package/build/umd/index.production.js +1 -1
  86. package/build/umd/index.production.js.map +1 -1
  87. package/package.json +7 -16
  88. package/src/index.ts +2 -2
  89. package/src/mutationCache.ts +7 -0
  90. package/src/mutationObserver.ts +9 -0
  91. package/src/queryCache.ts +7 -0
  92. package/src/queryObserver.ts +8 -0
  93. package/src/tests/queryObserver.test.tsx +19 -0
  94. package/src/types.ts +11 -8
  95. package/build/lib/index.js +0 -3096
  96. package/build/lib/index.js.map +0 -1
  97. package/build/lib/index.mjs.map +0 -1
@@ -10,11 +10,11 @@ export { notifyManager } from './notifyManager';
10
10
  export { focusManager } from './focusManager';
11
11
  export { onlineManager } from './onlineManager';
12
12
  export { hashQueryKey, isError, parseQueryArgs, parseFilterArgs, parseMutationFilterArgs, parseMutationArgs, } from './utils';
13
- export type { MutationFilters, QueryFilters, Updater } from './utils';
13
+ export type { MutationFilters, QueryFilters } from './utils';
14
14
  export { isCancelledError } from './retryer';
15
15
  export { dehydrate, hydrate } from './hydration';
16
16
  export * from './types';
17
- export type { Query, QueryState } from './query';
17
+ export type { Query } from './query';
18
18
  export type { Mutation } from './mutation';
19
19
  export type { Logger } from './logger';
20
20
  export type { DehydrateOptions, DehydratedState, HydrateOptions, ShouldDehydrateMutationFunction, ShouldDehydrateQueryFunction, } from './hydration';
@@ -27,12 +27,17 @@ interface NotifyEventMutationObserverRemoved {
27
27
  mutation: Mutation<any, any, any, any>;
28
28
  observer: MutationObserver<any, any, any>;
29
29
  }
30
+ interface NotifyEventMutationObserverOptionsUpdated {
31
+ type: 'observerOptionsUpdated';
32
+ mutation?: Mutation<any, any, any, any>;
33
+ observer: MutationObserver<any, any, any, any>;
34
+ }
30
35
  interface NotifyEventMutationUpdated {
31
36
  type: 'updated';
32
37
  mutation: Mutation<any, any, any, any>;
33
38
  action: Action<any, any, any, any>;
34
39
  }
35
- declare type MutationCacheNotifyEvent = NotifyEventMutationAdded | NotifyEventMutationRemoved | NotifyEventMutationObserverAdded | NotifyEventMutationObserverRemoved | NotifyEventMutationUpdated;
40
+ declare type MutationCacheNotifyEvent = NotifyEventMutationAdded | NotifyEventMutationRemoved | NotifyEventMutationObserverAdded | NotifyEventMutationObserverRemoved | NotifyEventMutationObserverOptionsUpdated | NotifyEventMutationUpdated;
36
41
  declare type MutationCacheListener = (event: MutationCacheNotifyEvent) => void;
37
42
  export declare class MutationCache extends Subscribable<MutationCacheListener> {
38
43
  config: MutationCacheConfig;
@@ -35,7 +35,12 @@ interface NotifyEventQueryObserverResultsUpdated {
35
35
  type: 'observerResultsUpdated';
36
36
  query: Query<any, any, any, any>;
37
37
  }
38
- declare type QueryCacheNotifyEvent = NotifyEventQueryAdded | NotifyEventQueryRemoved | NotifyEventQueryUpdated | NotifyEventQueryObserverAdded | NotifyEventQueryObserverRemoved | NotifyEventQueryObserverResultsUpdated;
38
+ interface NotifyEventQueryObserverOptionsUpdated {
39
+ type: 'observerOptionsUpdated';
40
+ query: Query<any, any, any, any>;
41
+ observer: QueryObserver<any, any, any, any, any>;
42
+ }
43
+ declare type QueryCacheNotifyEvent = NotifyEventQueryAdded | NotifyEventQueryRemoved | NotifyEventQueryUpdated | NotifyEventQueryObserverAdded | NotifyEventQueryObserverRemoved | NotifyEventQueryObserverResultsUpdated | NotifyEventQueryObserverOptionsUpdated;
39
44
  declare type QueryCacheListener = (event: QueryCacheNotifyEvent) => void;
40
45
  export declare class QueryCache extends Subscribable<QueryCacheListener> {
41
46
  config: QueryCacheConfig;
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -274,7 +274,8 @@ export interface QueryObserverSuccessResult<TData = unknown, TError = unknown> e
274
274
  isSuccess: true;
275
275
  status: 'success';
276
276
  }
277
- export declare type QueryObserverResult<TData = unknown, TError = unknown> = QueryObserverLoadingErrorResult<TData, TError> | QueryObserverLoadingResult<TData, TError> | QueryObserverRefetchErrorResult<TData, TError> | QueryObserverSuccessResult<TData, TError>;
277
+ export declare type DefinedQueryObserverResult<TData = unknown, TError = unknown> = QueryObserverRefetchErrorResult<TData, TError> | QueryObserverSuccessResult<TData, TError>;
278
+ export declare type QueryObserverResult<TData = unknown, TError = unknown> = DefinedQueryObserverResult<TData, TError> | QueryObserverLoadingErrorResult<TData, TError> | QueryObserverLoadingResult<TData, TError>;
278
279
  export interface InfiniteQueryObserverBaseResult<TData = unknown, TError = unknown> extends QueryObserverBaseResult<InfiniteData<TData>, TError> {
279
280
  fetchNextPage: (options?: FetchNextPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
280
281
  fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
@@ -333,9 +334,9 @@ export interface MutationOptions<TData = unknown, TError = unknown, TVariables =
333
334
  mutationKey?: MutationKey;
334
335
  variables?: TVariables;
335
336
  onMutate?: (variables: TVariables) => Promise<TContext | undefined> | TContext | undefined;
336
- onSuccess?: (data: TData, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
337
- onError?: (error: TError, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
338
- onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
337
+ onSuccess?: (data: TData, variables: TVariables, context: TContext | undefined) => Promise<unknown> | unknown;
338
+ onError?: (error: TError, variables: TVariables, context: TContext | undefined) => Promise<unknown> | unknown;
339
+ onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => Promise<unknown> | unknown;
339
340
  retry?: RetryValue<TError>;
340
341
  retryDelay?: RetryDelayValue<TError>;
341
342
  networkMode?: NetworkMode;
@@ -347,9 +348,9 @@ export interface MutationObserverOptions<TData = unknown, TError = unknown, TVar
347
348
  useErrorBoundary?: boolean | ((error: TError) => boolean);
348
349
  }
349
350
  export interface MutateOptions<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> {
350
- onSuccess?: (data: TData, variables: TVariables, context: TContext) => Promise<unknown> | void;
351
- onError?: (error: TError, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
352
- onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => Promise<unknown> | void;
351
+ onSuccess?: (data: TData, variables: TVariables, context: TContext) => Promise<unknown> | unknown;
352
+ onError?: (error: TError, variables: TVariables, context: TContext | undefined) => Promise<unknown> | unknown;
353
+ onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => Promise<unknown> | unknown;
353
354
  }
354
355
  export declare type MutateFunction<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> = (variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TContext>) => Promise<TData>;
355
356
  export interface MutationObserverBaseResult<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends MutationState<TData, TError, TVariables, TContext> {
@@ -0,0 +1,24 @@
1
+ /// <reference types="jest" />
2
+ /// <reference types="node" />
3
+ import { MutationOptions, QueryClient, QueryClientConfig } from '@tanstack/query-core';
4
+ export declare function createQueryClient(config?: QueryClientConfig): QueryClient;
5
+ export declare function mockVisibilityState(value: DocumentVisibilityState): jest.SpyInstance<DocumentVisibilityState, []>;
6
+ export declare function mockNavigatorOnLine(value: boolean): jest.SpyInstance<boolean, []>;
7
+ export declare const mockLogger: {
8
+ log: jest.Mock<any, any>;
9
+ warn: jest.Mock<any, any>;
10
+ error: jest.Mock<any, any>;
11
+ };
12
+ export declare function queryKey(): Array<string>;
13
+ export declare function sleep(timeout: number): Promise<void>;
14
+ export declare function setActTimeout(fn: () => void, ms?: number): NodeJS.Timeout;
15
+ /**
16
+ * Assert the parameter is of a specific type.
17
+ */
18
+ export declare const expectType: <T>(_: T) => void;
19
+ /**
20
+ * Assert the parameter is not typed as `any`
21
+ */
22
+ export declare const expectTypeNotAny: <T>(_: 0 extends 1 & T ? never : T) => void;
23
+ export declare const executeMutation: (queryClient: QueryClient, options: MutationOptions<any, any, any, any>) => Promise<unknown>;
24
+ export declare function setIsServer(isServer: boolean): () => void;
@@ -2203,6 +2203,14 @@
2203
2203
  const prevQuery = this.currentQuery;
2204
2204
  this.options = this.client.defaultQueryOptions(options);
2205
2205
 
2206
+ if (!shallowEqualObjects(prevOptions, this.options)) {
2207
+ this.client.getQueryCache().notify({
2208
+ type: 'observerOptionsUpdated',
2209
+ query: this.currentQuery,
2210
+ observer: this
2211
+ });
2212
+ }
2213
+
2206
2214
  if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {
2207
2215
  throw new Error('Expected enabled to be a boolean');
2208
2216
  } // Keep previous query key if the user does not supply one
@@ -2886,7 +2894,16 @@
2886
2894
  }
2887
2895
 
2888
2896
  setOptions(options) {
2897
+ const prevOptions = this.options;
2889
2898
  this.options = this.client.defaultMutationOptions(options);
2899
+
2900
+ if (!shallowEqualObjects(prevOptions, this.options)) {
2901
+ this.client.getMutationCache().notify({
2902
+ type: 'observerOptionsUpdated',
2903
+ mutation: this.currentMutation,
2904
+ observer: this
2905
+ });
2906
+ }
2890
2907
  }
2891
2908
 
2892
2909
  onUnsubscribe() {