@tanstack/react-query 4.40.2 → 4.41.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.
Files changed (100) hide show
  1. package/build/lib/__tests__/infiniteQueryOptions.test.d.ts +2 -0
  2. package/build/lib/__tests__/infiniteQueryOptions.types.test.d.ts +2 -0
  3. package/build/lib/__tests__/useSuspenseInfiniteQuery.types.test.d.ts +2 -0
  4. package/build/lib/index.d.ts +3 -0
  5. package/build/lib/index.esm.js +2 -0
  6. package/build/lib/index.esm.js.map +1 -1
  7. package/build/lib/index.js +4 -0
  8. package/build/lib/index.js.map +1 -1
  9. package/build/lib/index.mjs +2 -0
  10. package/build/lib/index.mjs.map +1 -1
  11. package/build/lib/infiniteQueryOptions.d.ts +14 -0
  12. package/build/lib/infiniteQueryOptions.esm.js +6 -0
  13. package/build/lib/infiniteQueryOptions.esm.js.map +1 -0
  14. package/build/lib/infiniteQueryOptions.js +10 -0
  15. package/build/lib/infiniteQueryOptions.js.map +1 -0
  16. package/build/lib/infiniteQueryOptions.mjs +6 -0
  17. package/build/lib/infiniteQueryOptions.mjs.map +1 -0
  18. package/build/lib/queryOptions.d.ts +2 -2
  19. package/build/lib/queryOptions.esm.js.map +1 -1
  20. package/build/lib/queryOptions.js.map +1 -1
  21. package/build/lib/queryOptions.mjs.map +1 -1
  22. package/build/lib/suspense.esm.js +11 -0
  23. package/build/lib/suspense.esm.js.map +1 -1
  24. package/build/lib/suspense.js +11 -0
  25. package/build/lib/suspense.js.map +1 -1
  26. package/build/lib/suspense.mjs +11 -0
  27. package/build/lib/suspense.mjs.map +1 -1
  28. package/build/lib/types.d.ts +3 -1
  29. package/build/lib/useInfiniteQuery.d.ts +7 -2
  30. package/build/lib/useInfiniteQuery.esm.js.map +1 -1
  31. package/build/lib/useInfiniteQuery.js.map +1 -1
  32. package/build/lib/useInfiniteQuery.mjs.map +1 -1
  33. package/build/lib/useQuery.d.ts +6 -6
  34. package/build/lib/useQuery.esm.js.map +1 -1
  35. package/build/lib/useQuery.js.map +1 -1
  36. package/build/lib/useQuery.mjs.map +1 -1
  37. package/build/lib/useSuspenseInfiniteQuery.d.ts +5 -0
  38. package/build/lib/useSuspenseInfiniteQuery.esm.js +14 -0
  39. package/build/lib/useSuspenseInfiniteQuery.esm.js.map +1 -0
  40. package/build/lib/useSuspenseInfiniteQuery.js +18 -0
  41. package/build/lib/useSuspenseInfiniteQuery.js.map +1 -0
  42. package/build/lib/useSuspenseInfiniteQuery.mjs +14 -0
  43. package/build/lib/useSuspenseInfiniteQuery.mjs.map +1 -0
  44. package/build/umd/index.development.js +26 -0
  45. package/build/umd/index.development.js.map +1 -1
  46. package/build/umd/index.production.js +1 -1
  47. package/build/umd/index.production.js.map +1 -1
  48. package/package.json +2 -2
  49. package/src/__tests__/infiniteQueryOptions.test.tsx +13 -0
  50. package/src/__tests__/infiniteQueryOptions.types.test.tsx +111 -0
  51. package/src/__tests__/queryOptions.types.test.tsx +8 -7
  52. package/src/__tests__/useSuspenseInfiniteQuery.types.test.tsx +115 -0
  53. package/src/index.ts +6 -0
  54. package/src/infiniteQueryOptions.ts +95 -0
  55. package/src/queryOptions.ts +8 -2
  56. package/src/types.ts +14 -0
  57. package/src/useInfiniteQuery.ts +28 -1
  58. package/src/useQuery.ts +6 -6
  59. package/src/useSuspenseInfiniteQuery.ts +62 -0
  60. package/build/lib/Hydrate.d.ts.map +0 -1
  61. package/build/lib/QueryClientProvider.d.ts.map +0 -1
  62. package/build/lib/QueryErrorResetBoundary.d.ts.map +0 -1
  63. package/build/lib/__tests__/Hydrate.test.d.ts.map +0 -1
  64. package/build/lib/__tests__/QueryClientProvider.test.d.ts.map +0 -1
  65. package/build/lib/__tests__/QueryResetErrorBoundary.test.d.ts.map +0 -1
  66. package/build/lib/__tests__/queryOptions.types.test.d.ts.map +0 -1
  67. package/build/lib/__tests__/ssr-hydration.test.d.ts.map +0 -1
  68. package/build/lib/__tests__/ssr.test.d.ts.map +0 -1
  69. package/build/lib/__tests__/suspense.test.d.ts.map +0 -1
  70. package/build/lib/__tests__/useInfiniteQuery.test.d.ts.map +0 -1
  71. package/build/lib/__tests__/useIsFetching.test.d.ts.map +0 -1
  72. package/build/lib/__tests__/useIsMutating.test.d.ts.map +0 -1
  73. package/build/lib/__tests__/useMutation.test.d.ts.map +0 -1
  74. package/build/lib/__tests__/useQueries.test.d.ts.map +0 -1
  75. package/build/lib/__tests__/useQuery.test.d.ts.map +0 -1
  76. package/build/lib/__tests__/useQuery.types.test.d.ts.map +0 -1
  77. package/build/lib/__tests__/useSuspenseQueries.types.test.d.ts.map +0 -1
  78. package/build/lib/__tests__/useSuspenseQuery.types.test.d.ts.map +0 -1
  79. package/build/lib/__tests__/utils.d.ts.map +0 -1
  80. package/build/lib/errorBoundaryUtils.d.ts.map +0 -1
  81. package/build/lib/index.d.ts.map +0 -1
  82. package/build/lib/isRestoring.d.ts.map +0 -1
  83. package/build/lib/queryOptions.d.ts.map +0 -1
  84. package/build/lib/reactBatchedUpdates.d.ts.map +0 -1
  85. package/build/lib/reactBatchedUpdates.native.d.ts.map +0 -1
  86. package/build/lib/setBatchUpdatesFn.d.ts.map +0 -1
  87. package/build/lib/suspense.d.ts.map +0 -1
  88. package/build/lib/types.d.ts.map +0 -1
  89. package/build/lib/useBaseQuery.d.ts.map +0 -1
  90. package/build/lib/useInfiniteQuery.d.ts.map +0 -1
  91. package/build/lib/useIsFetching.d.ts.map +0 -1
  92. package/build/lib/useIsMutating.d.ts.map +0 -1
  93. package/build/lib/useMutation.d.ts.map +0 -1
  94. package/build/lib/useQueries.d.ts.map +0 -1
  95. package/build/lib/useQuery.d.ts.map +0 -1
  96. package/build/lib/useSuspenseQueries.d.ts.map +0 -1
  97. package/build/lib/useSuspenseQuery.d.ts.map +0 -1
  98. package/build/lib/useSyncExternalStore.d.ts.map +0 -1
  99. package/build/lib/useSyncExternalStore.native.d.ts.map +0 -1
  100. package/build/lib/utils.d.ts.map +0 -1
@@ -0,0 +1,5 @@
1
+ import type { OmitKeyof, QueryKey, WithRequired } from '@tanstack/query-core';
2
+ import type { UseInfiniteQueryOptions, UseSuspenseInfiniteQueryResult } from './types';
3
+ export declare type UseSuspenseInfiniteQueryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = WithRequired<OmitKeyof<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'suspense' | 'useErrorBoundary' | 'enabled' | 'placeholderData' | 'networkMode' | 'initialData'>, 'queryKey'>;
4
+ export declare function useSuspenseInfiniteQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UseSuspenseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>): UseSuspenseInfiniteQueryResult<TData, TError>;
5
+ //# sourceMappingURL=useSuspenseInfiniteQuery.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { InfiniteQueryObserver } from '@tanstack/query-core';
2
+ import { useBaseQuery } from './useBaseQuery.esm.js';
3
+
4
+ function useSuspenseInfiniteQuery(options) {
5
+ return useBaseQuery({ ...options,
6
+ enabled: true,
7
+ suspense: true,
8
+ useErrorBoundary: true,
9
+ networkMode: 'always'
10
+ }, InfiniteQueryObserver);
11
+ }
12
+
13
+ export { useSuspenseInfiniteQuery };
14
+ //# sourceMappingURL=useSuspenseInfiniteQuery.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSuspenseInfiniteQuery.esm.js","sources":["../../src/useSuspenseInfiniteQuery.ts"],"sourcesContent":["import { InfiniteQueryObserver } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type {\n InfiniteQueryObserverSuccessResult,\n OmitKeyof,\n QueryKey,\n QueryObserver,\n WithRequired,\n} from '@tanstack/query-core'\nimport type {\n UseInfiniteQueryOptions,\n UseSuspenseInfiniteQueryResult,\n} from './types'\n\nexport type UseSuspenseInfiniteQueryOptions<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = WithRequired<\n OmitKeyof<\n UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n | 'suspense'\n | 'useErrorBoundary'\n | 'enabled'\n | 'placeholderData'\n | 'networkMode'\n | 'initialData'\n >,\n 'queryKey'\n>\n\nexport function useSuspenseInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseSuspenseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey\n >,\n): UseSuspenseInfiniteQueryResult<TData, TError> {\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n useErrorBoundary: true,\n networkMode: 'always',\n },\n InfiniteQueryObserver as typeof QueryObserver,\n ) as InfiniteQueryObserverSuccessResult<TData, TError>\n}\n"],"names":["useSuspenseInfiniteQuery","options","useBaseQuery","enabled","suspense","useErrorBoundary","networkMode","InfiniteQueryObserver"],"mappings":";;;AAsCO,SAASA,wBAAT,CAMLC,OANK,EAY0C;AAC/C,EAAA,OAAOC,YAAY,CACjB,EACE,GAAGD,OADL;AAEEE,IAAAA,OAAO,EAAE,IAFX;AAGEC,IAAAA,QAAQ,EAAE,IAHZ;AAIEC,IAAAA,gBAAgB,EAAE,IAJpB;AAKEC,IAAAA,WAAW,EAAE,QAAA;GANE,EAQjBC,qBARiB,CAAnB,CAAA;AAUD;;;;"}
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var queryCore = require('@tanstack/query-core');
6
+ var useBaseQuery = require('./useBaseQuery.js');
7
+
8
+ function useSuspenseInfiniteQuery(options) {
9
+ return useBaseQuery.useBaseQuery({ ...options,
10
+ enabled: true,
11
+ suspense: true,
12
+ useErrorBoundary: true,
13
+ networkMode: 'always'
14
+ }, queryCore.InfiniteQueryObserver);
15
+ }
16
+
17
+ exports.useSuspenseInfiniteQuery = useSuspenseInfiniteQuery;
18
+ //# sourceMappingURL=useSuspenseInfiniteQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSuspenseInfiniteQuery.js","sources":["../../src/useSuspenseInfiniteQuery.ts"],"sourcesContent":["import { InfiniteQueryObserver } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type {\n InfiniteQueryObserverSuccessResult,\n OmitKeyof,\n QueryKey,\n QueryObserver,\n WithRequired,\n} from '@tanstack/query-core'\nimport type {\n UseInfiniteQueryOptions,\n UseSuspenseInfiniteQueryResult,\n} from './types'\n\nexport type UseSuspenseInfiniteQueryOptions<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = WithRequired<\n OmitKeyof<\n UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n | 'suspense'\n | 'useErrorBoundary'\n | 'enabled'\n | 'placeholderData'\n | 'networkMode'\n | 'initialData'\n >,\n 'queryKey'\n>\n\nexport function useSuspenseInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseSuspenseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey\n >,\n): UseSuspenseInfiniteQueryResult<TData, TError> {\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n useErrorBoundary: true,\n networkMode: 'always',\n },\n InfiniteQueryObserver as typeof QueryObserver,\n ) as InfiniteQueryObserverSuccessResult<TData, TError>\n}\n"],"names":["useSuspenseInfiniteQuery","options","useBaseQuery","enabled","suspense","useErrorBoundary","networkMode","InfiniteQueryObserver"],"mappings":";;;;;;;AAsCO,SAASA,wBAAT,CAMLC,OANK,EAY0C;AAC/C,EAAA,OAAOC,yBAAY,CACjB,EACE,GAAGD,OADL;AAEEE,IAAAA,OAAO,EAAE,IAFX;AAGEC,IAAAA,QAAQ,EAAE,IAHZ;AAIEC,IAAAA,gBAAgB,EAAE,IAJpB;AAKEC,IAAAA,WAAW,EAAE,QAAA;GANE,EAQjBC,+BARiB,CAAnB,CAAA;AAUD;;;;"}
@@ -0,0 +1,14 @@
1
+ import { InfiniteQueryObserver } from '@tanstack/query-core';
2
+ import { useBaseQuery } from './useBaseQuery.mjs';
3
+
4
+ function useSuspenseInfiniteQuery(options) {
5
+ return useBaseQuery({ ...options,
6
+ enabled: true,
7
+ suspense: true,
8
+ useErrorBoundary: true,
9
+ networkMode: 'always'
10
+ }, InfiniteQueryObserver);
11
+ }
12
+
13
+ export { useSuspenseInfiniteQuery };
14
+ //# sourceMappingURL=useSuspenseInfiniteQuery.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSuspenseInfiniteQuery.mjs","sources":["../../src/useSuspenseInfiniteQuery.ts"],"sourcesContent":["import { InfiniteQueryObserver } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type {\n InfiniteQueryObserverSuccessResult,\n OmitKeyof,\n QueryKey,\n QueryObserver,\n WithRequired,\n} from '@tanstack/query-core'\nimport type {\n UseInfiniteQueryOptions,\n UseSuspenseInfiniteQueryResult,\n} from './types'\n\nexport type UseSuspenseInfiniteQueryOptions<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = WithRequired<\n OmitKeyof<\n UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n | 'suspense'\n | 'useErrorBoundary'\n | 'enabled'\n | 'placeholderData'\n | 'networkMode'\n | 'initialData'\n >,\n 'queryKey'\n>\n\nexport function useSuspenseInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseSuspenseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey\n >,\n): UseSuspenseInfiniteQueryResult<TData, TError> {\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n useErrorBoundary: true,\n networkMode: 'always',\n },\n InfiniteQueryObserver as typeof QueryObserver,\n ) as InfiniteQueryObserverSuccessResult<TData, TError>\n}\n"],"names":["useSuspenseInfiniteQuery","options","useBaseQuery","enabled","suspense","useErrorBoundary","networkMode","InfiniteQueryObserver"],"mappings":";;;AAsCO,SAASA,wBAAT,CAMLC,OANK,EAY0C;AAC/C,EAAA,OAAOC,YAAY,CACjB,EACE,GAAGD,OADL;AAEEE,IAAAA,OAAO,EAAE,IAFX;AAGEC,IAAAA,QAAQ,EAAE,IAHZ;AAIEC,IAAAA,gBAAgB,EAAE,IAJpB;AAKEC,IAAAA,WAAW,EAAE,QAAA;GANE,EAQjBC,qBARiB,CAAnB,CAAA;AAUD;;;;"}
@@ -3737,6 +3737,13 @@
3737
3737
  return result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(useErrorBoundary, [result.error, query]);
3738
3738
  };
3739
3739
 
3740
+ /**
3741
+ * Ensures minimum staleTime and cacheTime values when suspense is enabled.
3742
+ * Despite the name, this function guards both staleTime and cacheTime to prevent
3743
+ * infinite re-render loops with synchronous queries.
3744
+ *
3745
+ * @deprecated in v5 - replaced by ensureSuspenseTimers
3746
+ */
3740
3747
  const ensureStaleTime = defaultedOptions => {
3741
3748
  if (defaultedOptions.suspense) {
3742
3749
  // Always set stale time when using suspense to prevent
@@ -3744,6 +3751,10 @@
3744
3751
  if (typeof defaultedOptions.staleTime !== 'number') {
3745
3752
  defaultedOptions.staleTime = 1000;
3746
3753
  }
3754
+
3755
+ if (typeof defaultedOptions.cacheTime === 'number') {
3756
+ defaultedOptions.cacheTime = Math.max(defaultedOptions.cacheTime, 1000);
3757
+ }
3747
3758
  }
3748
3759
  };
3749
3760
  const willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;
@@ -3906,6 +3917,15 @@
3906
3917
  }, QueryObserver);
3907
3918
  }
3908
3919
 
3920
+ function useSuspenseInfiniteQuery(options) {
3921
+ return useBaseQuery({ ...options,
3922
+ enabled: true,
3923
+ suspense: true,
3924
+ useErrorBoundary: true,
3925
+ networkMode: 'always'
3926
+ }, InfiniteQueryObserver);
3927
+ }
3928
+
3909
3929
  function useSuspenseQueries({
3910
3930
  queries,
3911
3931
  context
@@ -3926,6 +3946,10 @@
3926
3946
  return options;
3927
3947
  }
3928
3948
 
3949
+ function infiniteQueryOptions(options) {
3950
+ return options;
3951
+ }
3952
+
3929
3953
  function useHydrate(state, options = {}) {
3930
3954
  const queryClient = useQueryClient({
3931
3955
  context: options.context
@@ -4020,6 +4044,7 @@
4020
4044
  exports.focusManager = focusManager;
4021
4045
  exports.hashQueryKey = hashQueryKey;
4022
4046
  exports.hydrate = hydrate;
4047
+ exports.infiniteQueryOptions = infiniteQueryOptions;
4023
4048
  exports.isCancelledError = isCancelledError;
4024
4049
  exports.isError = isError;
4025
4050
  exports.isServer = isServer;
@@ -4042,6 +4067,7 @@
4042
4067
  exports.useQuery = useQuery;
4043
4068
  exports.useQueryClient = useQueryClient;
4044
4069
  exports.useQueryErrorResetBoundary = useQueryErrorResetBoundary;
4070
+ exports.useSuspenseInfiniteQuery = useSuspenseInfiniteQuery;
4045
4071
  exports.useSuspenseQueries = useSuspenseQueries;
4046
4072
  exports.useSuspenseQuery = useSuspenseQuery;
4047
4073