@tanstack/react-query 5.0.0-alpha.4 → 5.0.0-alpha.42
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/codemods/__testfixtures__/default-import.input.tsx +94 -0
- package/build/codemods/__testfixtures__/default-import.output.tsx +96 -0
- package/build/codemods/__testfixtures__/named-import.input.tsx +96 -0
- package/build/codemods/__testfixtures__/named-import.output.tsx +98 -0
- package/build/codemods/__testfixtures__/namespaced-import.input.tsx +86 -0
- package/build/codemods/__testfixtures__/namespaced-import.output.tsx +88 -0
- package/build/codemods/__testfixtures__/parameter-is-identifier.input.tsx +49 -0
- package/build/codemods/__testfixtures__/parameter-is-identifier.output.tsx +49 -0
- package/build/codemods/__testfixtures__/parameter-is-object-expression.input.tsx +128 -0
- package/build/codemods/__testfixtures__/parameter-is-object-expression.output.tsx +175 -0
- package/build/codemods/__testfixtures__/replace-import-specifier.input.tsx +10 -0
- package/build/codemods/__testfixtures__/replace-import-specifier.output.tsx +10 -0
- package/build/codemods/__testfixtures__/type-arguments.input.tsx +25 -0
- package/build/codemods/__testfixtures__/type-arguments.output.tsx +31 -0
- package/build/codemods/__tests__/key-transformation.test.js +32 -0
- package/build/codemods/__tests__/replace-import-specifier.test.js +12 -0
- package/build/codemods/remove-overloads/__testfixtures__/default-import.input.tsx +199 -0
- package/build/codemods/remove-overloads/__testfixtures__/default-import.output.tsx +484 -0
- package/build/codemods/remove-overloads/__tests__/remove-overloads.test.js +6 -0
- package/build/codemods/remove-overloads/remove-overloads.js +59 -0
- package/build/codemods/remove-overloads/transformers/filter-aware-usage-transformer.js +153 -0
- package/build/codemods/remove-overloads/transformers/query-fn-aware-usage-transformer.js +188 -0
- package/build/codemods/remove-overloads/utils/index.js +124 -0
- package/build/codemods/remove-overloads/utils/unknown-usage-error.js +26 -0
- package/build/codemods/src/utils/index.js +205 -0
- package/build/codemods/src/v4/key-transformation.js +138 -0
- package/build/codemods/src/v4/replace-import-specifier.js +25 -0
- package/build/codemods/transformers/query-cache-transformer.js +116 -0
- package/build/codemods/transformers/query-client-transformer.js +48 -0
- package/build/codemods/transformers/use-query-like-transformer.js +32 -0
- package/build/codemods/utils/replacers/key-replacer.js +164 -0
- package/build/lib/HydrationBoundary.d.ts +1 -0
- package/build/lib/HydrationBoundary.d.ts.map +1 -0
- package/build/lib/HydrationBoundary.esm.js +1 -0
- package/build/lib/HydrationBoundary.esm.js.map +1 -1
- package/build/lib/HydrationBoundary.js +1 -0
- package/build/lib/HydrationBoundary.js.map +1 -1
- package/build/lib/HydrationBoundary.mjs +1 -0
- package/build/lib/HydrationBoundary.mjs.map +1 -1
- package/build/lib/QueryClientProvider.d.ts +2 -1
- package/build/lib/QueryClientProvider.d.ts.map +1 -0
- package/build/lib/QueryClientProvider.esm.js +1 -0
- package/build/lib/QueryClientProvider.esm.js.map +1 -1
- package/build/lib/QueryClientProvider.js +1 -0
- package/build/lib/QueryClientProvider.js.map +1 -1
- package/build/lib/QueryClientProvider.mjs +1 -0
- package/build/lib/QueryClientProvider.mjs.map +1 -1
- package/build/lib/QueryErrorResetBoundary.d.ts +2 -1
- package/build/lib/QueryErrorResetBoundary.d.ts.map +1 -0
- package/build/lib/QueryErrorResetBoundary.esm.js +1 -0
- package/build/lib/QueryErrorResetBoundary.esm.js.map +1 -1
- package/build/lib/QueryErrorResetBoundary.js +1 -0
- package/build/lib/QueryErrorResetBoundary.js.map +1 -1
- package/build/lib/QueryErrorResetBoundary.mjs +1 -0
- package/build/lib/QueryErrorResetBoundary.mjs.map +1 -1
- package/build/lib/__tests__/HydrationBoundary.test.d.ts +1 -0
- package/build/lib/__tests__/HydrationBoundary.test.d.ts.map +1 -0
- package/build/lib/__tests__/QueryClientProvider.test.d.ts +1 -0
- package/build/lib/__tests__/QueryClientProvider.test.d.ts.map +1 -0
- package/build/lib/__tests__/QueryResetErrorBoundary.test.d.ts +1 -0
- package/build/lib/__tests__/QueryResetErrorBoundary.test.d.ts.map +1 -0
- package/build/lib/__tests__/ssr-hydration.test.d.ts +1 -0
- package/build/lib/__tests__/ssr-hydration.test.d.ts.map +1 -0
- package/build/lib/__tests__/ssr.test.d.ts +1 -3
- package/build/lib/__tests__/ssr.test.d.ts.map +1 -0
- package/build/lib/__tests__/suspense.test.d.ts +1 -0
- package/build/lib/__tests__/suspense.test.d.ts.map +1 -0
- package/build/lib/__tests__/useInfiniteQuery.test.d.ts +1 -0
- package/build/lib/__tests__/useInfiniteQuery.test.d.ts.map +1 -0
- package/build/lib/__tests__/useInfiniteQuery.type.test.d.ts +1 -0
- package/build/lib/__tests__/useInfiniteQuery.type.test.d.ts.map +1 -0
- package/build/lib/__tests__/useIsFetching.test.d.ts +1 -0
- package/build/lib/__tests__/useIsFetching.test.d.ts.map +1 -0
- package/build/lib/__tests__/useMutation.test.d.ts +1 -0
- package/build/lib/__tests__/useMutation.test.d.ts.map +1 -0
- package/build/lib/__tests__/useMutationState.test.d.ts +1 -0
- package/build/lib/__tests__/useMutationState.test.d.ts.map +1 -0
- package/build/lib/__tests__/useQueries.test.d.ts +1 -0
- package/build/lib/__tests__/useQueries.test.d.ts.map +1 -0
- package/build/lib/__tests__/useQuery.test.d.ts +1 -0
- package/build/lib/__tests__/useQuery.test.d.ts.map +1 -0
- package/build/lib/__tests__/useQuery.types.test.d.ts +1 -0
- package/build/lib/__tests__/useQuery.types.test.d.ts.map +1 -0
- package/build/lib/__tests__/utils.d.ts +6 -6
- package/build/lib/__tests__/utils.d.ts.map +1 -0
- package/build/lib/errorBoundaryUtils.d.ts +4 -3
- package/build/lib/errorBoundaryUtils.d.ts.map +1 -0
- package/build/lib/errorBoundaryUtils.esm.js +4 -3
- package/build/lib/errorBoundaryUtils.esm.js.map +1 -1
- package/build/lib/errorBoundaryUtils.js +4 -3
- package/build/lib/errorBoundaryUtils.js.map +1 -1
- package/build/lib/errorBoundaryUtils.mjs +4 -3
- package/build/lib/errorBoundaryUtils.mjs.map +1 -1
- package/build/lib/index.d.ts +2 -1
- package/build/lib/index.d.ts.map +1 -0
- 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/isRestoring.d.ts +1 -0
- package/build/lib/isRestoring.d.ts.map +1 -0
- package/build/lib/isRestoring.esm.js +1 -0
- package/build/lib/isRestoring.esm.js.map +1 -1
- package/build/lib/isRestoring.js +1 -0
- package/build/lib/isRestoring.js.map +1 -1
- package/build/lib/isRestoring.mjs +1 -0
- package/build/lib/isRestoring.mjs.map +1 -1
- package/build/lib/suspense.d.ts +3 -5
- package/build/lib/suspense.d.ts.map +1 -0
- package/build/lib/suspense.esm.js +2 -9
- package/build/lib/suspense.esm.js.map +1 -1
- package/build/lib/suspense.js +2 -9
- package/build/lib/suspense.js.map +1 -1
- package/build/lib/suspense.mjs +1 -8
- package/build/lib/suspense.mjs.map +1 -1
- package/build/lib/types.d.ts +11 -10
- package/build/lib/types.d.ts.map +1 -0
- package/build/lib/useBaseQuery.d.ts +1 -0
- package/build/lib/useBaseQuery.d.ts.map +1 -0
- package/build/lib/useBaseQuery.esm.js +2 -12
- package/build/lib/useBaseQuery.esm.js.map +1 -1
- package/build/lib/useBaseQuery.js +2 -12
- package/build/lib/useBaseQuery.js.map +1 -1
- package/build/lib/useBaseQuery.mjs +2 -12
- package/build/lib/useBaseQuery.mjs.map +1 -1
- package/build/lib/useInfiniteQuery.d.ts +1 -0
- package/build/lib/useInfiniteQuery.d.ts.map +1 -0
- package/build/lib/useInfiniteQuery.esm.js +1 -0
- package/build/lib/useInfiniteQuery.esm.js.map +1 -1
- package/build/lib/useInfiniteQuery.js +1 -0
- package/build/lib/useInfiniteQuery.js.map +1 -1
- package/build/lib/useInfiniteQuery.mjs +1 -0
- package/build/lib/useInfiniteQuery.mjs.map +1 -1
- package/build/lib/useIsFetching.d.ts +1 -0
- package/build/lib/useIsFetching.d.ts.map +1 -0
- package/build/lib/useIsFetching.esm.js +1 -0
- package/build/lib/useIsFetching.esm.js.map +1 -1
- package/build/lib/useIsFetching.js +1 -0
- package/build/lib/useIsFetching.js.map +1 -1
- package/build/lib/useIsFetching.mjs +1 -0
- package/build/lib/useIsFetching.mjs.map +1 -1
- package/build/lib/useMutation.d.ts +1 -0
- package/build/lib/useMutation.d.ts.map +1 -0
- package/build/lib/useMutation.esm.js +2 -1
- package/build/lib/useMutation.esm.js.map +1 -1
- package/build/lib/useMutation.js +2 -1
- package/build/lib/useMutation.js.map +1 -1
- package/build/lib/useMutation.mjs +2 -1
- package/build/lib/useMutation.mjs.map +1 -1
- package/build/lib/useMutationState.d.ts +4 -3
- package/build/lib/useMutationState.d.ts.map +1 -0
- package/build/lib/useMutationState.esm.js +1 -0
- package/build/lib/useMutationState.esm.js.map +1 -1
- package/build/lib/useMutationState.js +1 -0
- package/build/lib/useMutationState.js.map +1 -1
- package/build/lib/useMutationState.mjs +1 -0
- package/build/lib/useMutationState.mjs.map +1 -1
- package/build/lib/useQueries.d.ts +10 -8
- package/build/lib/useQueries.d.ts.map +1 -0
- package/build/lib/useQueries.esm.js +39 -27
- package/build/lib/useQueries.esm.js.map +1 -1
- package/build/lib/useQueries.js +39 -27
- package/build/lib/useQueries.js.map +1 -1
- package/build/lib/useQueries.mjs +31 -22
- package/build/lib/useQueries.mjs.map +1 -1
- package/build/lib/useQuery.d.ts +5 -2
- package/build/lib/useQuery.d.ts.map +1 -0
- package/build/lib/useQuery.esm.js +6 -1
- package/build/lib/useQuery.esm.js.map +1 -1
- package/build/lib/useQuery.js +6 -0
- package/build/lib/useQuery.js.map +1 -1
- package/build/lib/useQuery.mjs +6 -1
- package/build/lib/useQuery.mjs.map +1 -1
- package/build/lib/utils.d.ts +1 -0
- package/build/lib/utils.d.ts.map +1 -0
- package/build/lib/utils.esm.js.map +1 -1
- package/build/lib/utils.js.map +1 -1
- package/build/lib/utils.mjs.map +1 -1
- package/build/umd/index.development.js +191 -187
- 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 +13 -6
- package/src/__tests__/HydrationBoundary.test.tsx +4 -3
- package/src/__tests__/QueryClientProvider.test.tsx +2 -1
- package/src/__tests__/QueryResetErrorBoundary.test.tsx +753 -620
- package/src/__tests__/ssr-hydration.test.tsx +11 -10
- package/src/__tests__/ssr.test.tsx +4 -7
- package/src/__tests__/suspense.test.tsx +17 -98
- package/src/__tests__/useInfiniteQuery.test.tsx +18 -16
- package/src/__tests__/useInfiniteQuery.type.test.tsx +94 -13
- package/src/__tests__/useMutation.test.tsx +25 -24
- package/src/__tests__/useMutationState.test.tsx +24 -58
- package/src/__tests__/useQueries.test.tsx +217 -154
- package/src/__tests__/useQuery.test.tsx +234 -365
- package/src/__tests__/useQuery.types.test.tsx +21 -1
- package/src/__tests__/utils.tsx +3 -2
- package/src/errorBoundaryUtils.ts +6 -5
- package/src/index.ts +1 -1
- package/src/suspense.ts +9 -15
- package/src/useBaseQuery.ts +2 -20
- package/src/useInfiniteQuery.ts +1 -0
- package/src/useIsFetching.ts +1 -0
- package/src/useMutation.ts +2 -1
- package/src/useMutationState.ts +4 -3
- package/src/useQueries.ts +44 -26
- package/src/useQuery.ts +23 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
var React = require('react');
|
|
@@ -35,17 +36,6 @@ function useBaseQuery(options, Observer, queryClient) {
|
|
|
35
36
|
|
|
36
37
|
// Make sure results are optimistically set in fetching state before subscribing or updating options
|
|
37
38
|
defaultedOptions._optimisticResults = isRestoring$1 ? 'isRestoring' : 'optimistic';
|
|
38
|
-
|
|
39
|
-
// Include callbacks in batch renders
|
|
40
|
-
if (defaultedOptions.onError) {
|
|
41
|
-
defaultedOptions.onError = queryCore.notifyManager.batchCalls(defaultedOptions.onError);
|
|
42
|
-
}
|
|
43
|
-
if (defaultedOptions.onSuccess) {
|
|
44
|
-
defaultedOptions.onSuccess = queryCore.notifyManager.batchCalls(defaultedOptions.onSuccess);
|
|
45
|
-
}
|
|
46
|
-
if (defaultedOptions.onSettled) {
|
|
47
|
-
defaultedOptions.onSettled = queryCore.notifyManager.batchCalls(defaultedOptions.onSettled);
|
|
48
|
-
}
|
|
49
39
|
suspense.ensureStaleTime(defaultedOptions);
|
|
50
40
|
errorBoundaryUtils.ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);
|
|
51
41
|
errorBoundaryUtils.useClearResetErrorBoundary(errorResetBoundary);
|
|
@@ -69,7 +59,7 @@ function useBaseQuery(options, Observer, queryClient) {
|
|
|
69
59
|
if (errorBoundaryUtils.getHasError({
|
|
70
60
|
result,
|
|
71
61
|
errorResetBoundary,
|
|
72
|
-
|
|
62
|
+
throwOnError: defaultedOptions.throwOnError,
|
|
73
63
|
query: observer.getCurrentQuery()
|
|
74
64
|
})) {
|
|
75
65
|
throw result.error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBaseQuery.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useBaseQuery.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport type { QueryClient, QueryKey, QueryObserver } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { UseBaseQueryOptions } from './types'\nimport { useIsRestoring } from './isRestoring'\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary,\n} from './errorBoundaryUtils'\nimport { ensureStaleTime, shouldSuspend, fetchOptimistic } from './suspense'\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: UseBaseQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n Observer: typeof QueryObserver,\n queryClient?: QueryClient,\n) {\n const client = useQueryClient(queryClient)\n const isRestoring = useIsRestoring()\n const errorResetBoundary = useQueryErrorResetBoundary()\n const defaultedOptions = client.defaultQueryOptions(options)\n\n // Make sure results are optimistically set in fetching state before subscribing or updating options\n defaultedOptions._optimisticResults = isRestoring\n ? 'isRestoring'\n : 'optimistic'\n\n ensureStaleTime(defaultedOptions)\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary)\n\n useClearResetErrorBoundary(errorResetBoundary)\n\n const [observer] = React.useState(\n () =>\n new Observer<TQueryFnData, TError, TData, TQueryData, TQueryKey>(\n client,\n defaultedOptions,\n ),\n )\n\n const result = observer.getOptimisticResult(defaultedOptions)\n\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n isRestoring\n ? () => undefined\n : observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer, isRestoring],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n React.useEffect(() => {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, { listeners: false })\n }, [defaultedOptions, observer])\n\n // Handle suspense\n if (shouldSuspend(defaultedOptions, result, isRestoring)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n }\n\n // Handle error boundary\n if (\n getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: observer.getCurrentQuery(),\n })\n ) {\n throw result.error\n }\n\n // Handle result property usage tracking\n return !defaultedOptions.notifyOnChangeProps\n ? observer.trackResult(result)\n : result\n}\n"],"names":["defaultedOptions","ensurePreventErrorBoundaryRetry","observer","listeners","query"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO;AAiBL;AACA;AACA;AACA;;AAEA;AACAA;;AAKAC;;AAIA;AAQA;;;AAeE;AACA;AACAC;AAAwCC;AAAiB;AAC3D;;AAEA;;AAEE;AACF;;AAEA;AACA;;;;AAKIC;AACF;;AAGF;;AAEA;AACA;AAGF;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import { notifyManager } from '@tanstack/query-core';
|
|
3
4
|
import { useQueryErrorResetBoundary } from './QueryErrorResetBoundary.mjs';
|
|
@@ -14,17 +15,6 @@ function useBaseQuery(options, Observer, queryClient) {
|
|
|
14
15
|
|
|
15
16
|
// Make sure results are optimistically set in fetching state before subscribing or updating options
|
|
16
17
|
defaultedOptions._optimisticResults = isRestoring ? 'isRestoring' : 'optimistic';
|
|
17
|
-
|
|
18
|
-
// Include callbacks in batch renders
|
|
19
|
-
if (defaultedOptions.onError) {
|
|
20
|
-
defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);
|
|
21
|
-
}
|
|
22
|
-
if (defaultedOptions.onSuccess) {
|
|
23
|
-
defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);
|
|
24
|
-
}
|
|
25
|
-
if (defaultedOptions.onSettled) {
|
|
26
|
-
defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);
|
|
27
|
-
}
|
|
28
18
|
ensureStaleTime(defaultedOptions);
|
|
29
19
|
ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);
|
|
30
20
|
useClearResetErrorBoundary(errorResetBoundary);
|
|
@@ -48,7 +38,7 @@ function useBaseQuery(options, Observer, queryClient) {
|
|
|
48
38
|
if (getHasError({
|
|
49
39
|
result,
|
|
50
40
|
errorResetBoundary,
|
|
51
|
-
|
|
41
|
+
throwOnError: defaultedOptions.throwOnError,
|
|
52
42
|
query: observer.getCurrentQuery()
|
|
53
43
|
})) {
|
|
54
44
|
throw result.error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBaseQuery.mjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useBaseQuery.mjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport type { QueryClient, QueryKey, QueryObserver } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { UseBaseQueryOptions } from './types'\nimport { useIsRestoring } from './isRestoring'\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary,\n} from './errorBoundaryUtils'\nimport { ensureStaleTime, shouldSuspend, fetchOptimistic } from './suspense'\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: UseBaseQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n Observer: typeof QueryObserver,\n queryClient?: QueryClient,\n) {\n const client = useQueryClient(queryClient)\n const isRestoring = useIsRestoring()\n const errorResetBoundary = useQueryErrorResetBoundary()\n const defaultedOptions = client.defaultQueryOptions(options)\n\n // Make sure results are optimistically set in fetching state before subscribing or updating options\n defaultedOptions._optimisticResults = isRestoring\n ? 'isRestoring'\n : 'optimistic'\n\n ensureStaleTime(defaultedOptions)\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary)\n\n useClearResetErrorBoundary(errorResetBoundary)\n\n const [observer] = React.useState(\n () =>\n new Observer<TQueryFnData, TError, TData, TQueryData, TQueryKey>(\n client,\n defaultedOptions,\n ),\n )\n\n const result = observer.getOptimisticResult(defaultedOptions)\n\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n isRestoring\n ? () => undefined\n : observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer, isRestoring],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n React.useEffect(() => {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, { listeners: false })\n }, [defaultedOptions, observer])\n\n // Handle suspense\n if (shouldSuspend(defaultedOptions, result, isRestoring)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n }\n\n // Handle error boundary\n if (\n getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: observer.getCurrentQuery(),\n })\n ) {\n throw result.error\n }\n\n // Handle result property usage tracking\n return !defaultedOptions.notifyOnChangeProps\n ? observer.trackResult(result)\n : result\n}\n"],"names":["defaultedOptions","ensurePreventErrorBoundaryRetry","observer","listeners","query"],"mappings":";;;;;;;;;AAgBO;AAiBL;AACA;AACA;AACA;;AAEA;AACAA;;AAKAC;;AAIA;AAQA;;;AAeE;AACA;AACAC;AAAwCC;AAAiB;AAC3D;;AAEA;;AAEE;AACF;;AAEA;AACA;;;;AAKIC;AACF;;AAGF;;AAEA;AACA;AAGF;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { QueryKey, QueryClient, DefaultError, InfiniteData } from '@tanstack/query-core';
|
|
2
2
|
import type { UseInfiniteQueryOptions, UseInfiniteQueryResult } from './types';
|
|
3
3
|
export declare function useInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam>, queryClient?: QueryClient): UseInfiniteQueryResult<TData, TError>;
|
|
4
|
+
//# sourceMappingURL=useInfiniteQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInfiniteQuery.d.ts","sourceRoot":"","sources":["../../src/useInfiniteQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,YAAY,EACb,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAI9E,wBAAgB,gBAAgB,CAC9B,YAAY,EACZ,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,EAClC,SAAS,SAAS,QAAQ,GAAG,QAAQ,EACrC,UAAU,GAAG,OAAO,EAEpB,OAAO,EAAE,uBAAuB,CAC9B,YAAY,EACZ,MAAM,EACN,KAAK,EACL,YAAY,EACZ,SAAS,EACT,UAAU,CACX,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAOvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInfiniteQuery.esm.js","sources":["../../src/useInfiniteQuery.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useInfiniteQuery.esm.js","sources":["../../src/useInfiniteQuery.ts"],"sourcesContent":["'use client'\nimport type {\n QueryObserver,\n QueryKey,\n QueryClient,\n DefaultError,\n InfiniteData,\n} from '@tanstack/query-core'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type { UseInfiniteQueryOptions, UseInfiniteQueryResult } from './types'\nimport { useBaseQuery } from './useBaseQuery'\n\n// HOOK\nexport function useInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseInfiniteQueryResult<TData, TError> {\n return useBaseQuery(\n options,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as UseInfiniteQueryResult<TData, TError>\n}\n"],"names":[],"mappings":";;;;AAYA;AACO;;AAmBH;;AAIJ;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInfiniteQuery.js","sources":["../../src/useInfiniteQuery.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useInfiniteQuery.js","sources":["../../src/useInfiniteQuery.ts"],"sourcesContent":["'use client'\nimport type {\n QueryObserver,\n QueryKey,\n QueryClient,\n DefaultError,\n InfiniteData,\n} from '@tanstack/query-core'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type { UseInfiniteQueryOptions, UseInfiniteQueryResult } from './types'\nimport { useBaseQuery } from './useBaseQuery'\n\n// HOOK\nexport function useInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseInfiniteQueryResult<TData, TError> {\n return useBaseQuery(\n options,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as UseInfiniteQueryResult<TData, TError>\n}\n"],"names":[],"mappings":";;;;;;AAYA;AACO;;AAmBH;;AAIJ;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInfiniteQuery.mjs","sources":["../../src/useInfiniteQuery.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useInfiniteQuery.mjs","sources":["../../src/useInfiniteQuery.ts"],"sourcesContent":["'use client'\nimport type {\n QueryObserver,\n QueryKey,\n QueryClient,\n DefaultError,\n InfiniteData,\n} from '@tanstack/query-core'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type { UseInfiniteQueryOptions, UseInfiniteQueryResult } from './types'\nimport { useBaseQuery } from './useBaseQuery'\n\n// HOOK\nexport function useInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseInfiniteQueryResult<TData, TError> {\n return useBaseQuery(\n options,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as UseInfiniteQueryResult<TData, TError>\n}\n"],"names":[],"mappings":";;;;AAYA;AACO;;AAmBH;;AAIJ;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsFetching.d.ts","sourceRoot":"","sources":["../../src/useIsFetching.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAKrE,wBAAgB,aAAa,CAC3B,OAAO,CAAC,EAAE,YAAY,EACtB,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,CAaR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsFetching.esm.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useIsFetching.esm.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport type { QueryClient, QueryFilters } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\n\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsFetching(\n filters?: QueryFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n const queryCache = client.getQueryCache()\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n queryCache.subscribe(notifyManager.batchCalls(onStoreChange)),\n [queryCache],\n ),\n () => client.isFetching(filters),\n () => client.isFetching(filters),\n )\n}\n"],"names":[],"mappings":";;;;;AAOO;AAIL;AACA;AAEA;AASF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsFetching.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useIsFetching.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport type { QueryClient, QueryFilters } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\n\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsFetching(\n filters?: QueryFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n const queryCache = client.getQueryCache()\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n queryCache.subscribe(notifyManager.batchCalls(onStoreChange)),\n [queryCache],\n ),\n () => client.isFetching(filters),\n () => client.isFetching(filters),\n )\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAOO;AAIL;AACA;AAEA;AASF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsFetching.mjs","sources":["../../src/useIsFetching.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useIsFetching.mjs","sources":["../../src/useIsFetching.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport type { QueryClient, QueryFilters } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\n\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsFetching(\n filters?: QueryFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n const queryCache = client.getQueryCache()\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n queryCache.subscribe(notifyManager.batchCalls(onStoreChange)),\n [queryCache],\n ),\n () => client.isFetching(filters),\n () => client.isFetching(filters),\n )\n}\n"],"names":[],"mappings":";;;;;AAOO;AAIL;AACA;AAEA;AASF;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { QueryClient, DefaultError } from '@tanstack/query-core';
|
|
2
2
|
import type { UseMutationOptions, UseMutationResult } from './types';
|
|
3
3
|
export declare function useMutation<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown>(options: UseMutationOptions<TData, TError, TVariables, TContext>, queryClient?: QueryClient): UseMutationResult<TData, TError, TVariables, TContext>;
|
|
4
|
+
//# sourceMappingURL=useMutation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../src/useMutation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGrE,OAAO,KAAK,EAEV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAKhB,wBAAgB,WAAW,CACzB,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,YAAY,EACrB,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,OAAO,EAElB,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAChE,WAAW,CAAC,EAAE,WAAW,GACxB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CA0CxD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import { MutationObserver, notifyManager } from '@tanstack/query-core';
|
|
3
4
|
import { useQueryClient } from './QueryClientProvider.esm.js';
|
|
@@ -15,7 +16,7 @@ function useMutation(options, queryClient) {
|
|
|
15
16
|
const mutate = React.useCallback((variables, mutateOptions) => {
|
|
16
17
|
observer.mutate(variables, mutateOptions).catch(noop);
|
|
17
18
|
}, [observer]);
|
|
18
|
-
if (result.error && shouldThrowError(observer.options.
|
|
19
|
+
if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {
|
|
19
20
|
throw result.error;
|
|
20
21
|
}
|
|
21
22
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMutation.esm.js","sources":["../../src/useMutation.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useMutation.esm.js","sources":["../../src/useMutation.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport type { QueryClient, DefaultError } from '@tanstack/query-core'\nimport { notifyManager, MutationObserver } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport { shouldThrowError } from './utils'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n queryClient?: QueryClient,\n): UseMutationResult<TData, TError, TVariables, TContext> {\n const client = useQueryClient(queryClient)\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TContext>(\n client,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TContext>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.throwOnError, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["observer"],"mappings":";;;;;;AAYA;;AAEO;AASL;AAEA;;AASEA;AACF;AAEA;;;AAeE;AAIF;;AAKA;;AAES;;;;AACX;;AAEA;AACA;;"}
|
package/build/lib/useMutation.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
var React = require('react');
|
|
@@ -36,7 +37,7 @@ function useMutation(options, queryClient) {
|
|
|
36
37
|
const mutate = React__namespace.useCallback((variables, mutateOptions) => {
|
|
37
38
|
observer.mutate(variables, mutateOptions).catch(noop);
|
|
38
39
|
}, [observer]);
|
|
39
|
-
if (result.error && utils.shouldThrowError(observer.options.
|
|
40
|
+
if (result.error && utils.shouldThrowError(observer.options.throwOnError, [result.error])) {
|
|
40
41
|
throw result.error;
|
|
41
42
|
}
|
|
42
43
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMutation.js","sources":["../../src/useMutation.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useMutation.js","sources":["../../src/useMutation.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport type { QueryClient, DefaultError } from '@tanstack/query-core'\nimport { notifyManager, MutationObserver } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport { shouldThrowError } from './utils'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n queryClient?: QueryClient,\n): UseMutationResult<TData, TError, TVariables, TContext> {\n const client = useQueryClient(queryClient)\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TContext>(\n client,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TContext>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.throwOnError, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["observer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA;;AAEO;AASL;AAEA;;AASEA;AACF;AAEA;;;AAeE;AAIF;;AAKA;;AAES;;;;AACX;;AAEA;AACA;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import { MutationObserver, notifyManager } from '@tanstack/query-core';
|
|
3
4
|
import { useQueryClient } from './QueryClientProvider.mjs';
|
|
@@ -15,7 +16,7 @@ function useMutation(options, queryClient) {
|
|
|
15
16
|
const mutate = React.useCallback((variables, mutateOptions) => {
|
|
16
17
|
observer.mutate(variables, mutateOptions).catch(noop);
|
|
17
18
|
}, [observer]);
|
|
18
|
-
if (result.error && shouldThrowError(observer.options.
|
|
19
|
+
if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {
|
|
19
20
|
throw result.error;
|
|
20
21
|
}
|
|
21
22
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMutation.mjs","sources":["../../src/useMutation.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useMutation.mjs","sources":["../../src/useMutation.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport type { QueryClient, DefaultError } from '@tanstack/query-core'\nimport { notifyManager, MutationObserver } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport { shouldThrowError } from './utils'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n queryClient?: QueryClient,\n): UseMutationResult<TData, TError, TVariables, TContext> {\n const client = useQueryClient(queryClient)\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TContext>(\n client,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TContext>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.throwOnError, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["observer"],"mappings":";;;;;;AAYA;;AAEO;AASL;AAEA;;AASEA;AACF;AAEA;;;AAeE;AAIF;;AAKA;;AAES;;;;AACX;;AAEA;AACA;;"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { MutationFilters, QueryClient, Mutation, DefaultError } from '@tanstack/query-core';
|
|
1
|
+
import type { MutationFilters, QueryClient, Mutation, DefaultError, MutationState } from '@tanstack/query-core';
|
|
2
2
|
export declare function useIsMutating(filters?: MutationFilters, queryClient?: QueryClient): number;
|
|
3
|
-
|
|
3
|
+
type MutationStateOptions<TResult = MutationState> = {
|
|
4
4
|
filters?: MutationFilters;
|
|
5
5
|
select?: (mutation: Mutation<unknown, DefaultError, unknown, unknown>) => TResult;
|
|
6
6
|
};
|
|
7
|
-
export declare function useMutationState<TResult =
|
|
7
|
+
export declare function useMutationState<TResult = MutationState>(options?: MutationStateOptions<TResult>, queryClient?: QueryClient): Array<TResult>;
|
|
8
8
|
export {};
|
|
9
|
+
//# sourceMappingURL=useMutationState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMutationState.d.ts","sourceRoot":"","sources":["../../src/useMutationState.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,QAAQ,EAER,YAAY,EACZ,aAAa,EACd,MAAM,sBAAsB,CAAA;AAI7B,wBAAgB,aAAa,CAC3B,OAAO,CAAC,EAAE,eAAe,EACzB,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,CAMR;AAED,KAAK,oBAAoB,CAAC,OAAO,GAAG,aAAa,IAAI;IACnD,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,MAAM,CAAC,EAAE,CACP,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,KACxD,OAAO,CAAA;CACb,CAAA;AAkBD,wBAAgB,gBAAgB,CAAC,OAAO,GAAG,aAAa,EACtD,OAAO,GAAE,oBAAoB,CAAC,OAAO,CAAM,EAC3C,WAAW,CAAC,EAAE,WAAW,GACxB,KAAK,CAAC,OAAO,CAAC,CA8BhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMutationState.esm.js","sources":["../../src/useMutationState.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useMutationState.esm.js","sources":["../../src/useMutationState.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport type {\n MutationFilters,\n QueryClient,\n Mutation,\n MutationCache,\n DefaultError,\n MutationState,\n} from '@tanstack/query-core'\nimport { notifyManager, replaceEqualDeep } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsMutating(\n filters?: MutationFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n return useMutationState(\n { filters: { ...filters, status: 'pending' } },\n client,\n ).length\n}\n\ntype MutationStateOptions<TResult = MutationState> = {\n filters?: MutationFilters\n select?: (\n mutation: Mutation<unknown, DefaultError, unknown, unknown>,\n ) => TResult\n}\n\nfunction getResult<TResult = MutationState>(\n mutationCache: MutationCache,\n options: MutationStateOptions<TResult>,\n): Array<TResult> {\n return mutationCache\n .findAll(options.filters)\n .map(\n (mutation): TResult =>\n (options.select\n ? options.select(\n mutation as Mutation<unknown, DefaultError, unknown, unknown>,\n )\n : mutation.state) as TResult,\n )\n}\n\nexport function useMutationState<TResult = MutationState>(\n options: MutationStateOptions<TResult> = {},\n queryClient?: QueryClient,\n): Array<TResult> {\n const mutationCache = useQueryClient(queryClient).getMutationCache()\n const optionsRef = React.useRef(options)\n const result = React.useRef<Array<TResult>>()\n if (!result.current) {\n result.current = getResult(mutationCache, options)\n }\n\n React.useEffect(() => {\n optionsRef.current = options\n })\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n mutationCache.subscribe(() => {\n const nextResult = replaceEqualDeep(\n result.current,\n getResult(mutationCache, optionsRef.current),\n )\n if (result.current !== nextResult) {\n result.current = nextResult\n notifyManager.schedule(onStoreChange)\n }\n }),\n [mutationCache],\n ),\n () => result.current,\n () => result.current,\n )!\n}\n"],"names":["filters","status","notifyManager"],"mappings":";;;;;AAcO;AAIL;AACA;AACIA;AAAW;AAAYC;AAAkB;AAAE;AAGjD;AASA;;AAcA;AAEO;;AAKL;AACA;AACA;;AAEA;;;AAIA;AAEA;AAIQ;AAIA;;AAEEC;AACF;AACF;AAMR;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMutationState.js","sources":["../../src/useMutationState.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useMutationState.js","sources":["../../src/useMutationState.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport type {\n MutationFilters,\n QueryClient,\n Mutation,\n MutationCache,\n DefaultError,\n MutationState,\n} from '@tanstack/query-core'\nimport { notifyManager, replaceEqualDeep } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsMutating(\n filters?: MutationFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n return useMutationState(\n { filters: { ...filters, status: 'pending' } },\n client,\n ).length\n}\n\ntype MutationStateOptions<TResult = MutationState> = {\n filters?: MutationFilters\n select?: (\n mutation: Mutation<unknown, DefaultError, unknown, unknown>,\n ) => TResult\n}\n\nfunction getResult<TResult = MutationState>(\n mutationCache: MutationCache,\n options: MutationStateOptions<TResult>,\n): Array<TResult> {\n return mutationCache\n .findAll(options.filters)\n .map(\n (mutation): TResult =>\n (options.select\n ? options.select(\n mutation as Mutation<unknown, DefaultError, unknown, unknown>,\n )\n : mutation.state) as TResult,\n )\n}\n\nexport function useMutationState<TResult = MutationState>(\n options: MutationStateOptions<TResult> = {},\n queryClient?: QueryClient,\n): Array<TResult> {\n const mutationCache = useQueryClient(queryClient).getMutationCache()\n const optionsRef = React.useRef(options)\n const result = React.useRef<Array<TResult>>()\n if (!result.current) {\n result.current = getResult(mutationCache, options)\n }\n\n React.useEffect(() => {\n optionsRef.current = options\n })\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n mutationCache.subscribe(() => {\n const nextResult = replaceEqualDeep(\n result.current,\n getResult(mutationCache, optionsRef.current),\n )\n if (result.current !== nextResult) {\n result.current = nextResult\n notifyManager.schedule(onStoreChange)\n }\n }),\n [mutationCache],\n ),\n () => result.current,\n () => result.current,\n )!\n}\n"],"names":["filters","status","notifyManager"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAcO;AAIL;AACA;AACIA;AAAW;AAAYC;AAAkB;AAAE;AAGjD;AASA;;AAcA;AAEO;;AAKL;AACA;AACA;;AAEA;;;AAIA;AAEA;AAIQ;AAIA;;AAEEC;AACF;AACF;AAMR;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMutationState.mjs","sources":["../../src/useMutationState.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"useMutationState.mjs","sources":["../../src/useMutationState.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport type {\n MutationFilters,\n QueryClient,\n Mutation,\n MutationCache,\n DefaultError,\n MutationState,\n} from '@tanstack/query-core'\nimport { notifyManager, replaceEqualDeep } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsMutating(\n filters?: MutationFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n return useMutationState(\n { filters: { ...filters, status: 'pending' } },\n client,\n ).length\n}\n\ntype MutationStateOptions<TResult = MutationState> = {\n filters?: MutationFilters\n select?: (\n mutation: Mutation<unknown, DefaultError, unknown, unknown>,\n ) => TResult\n}\n\nfunction getResult<TResult = MutationState>(\n mutationCache: MutationCache,\n options: MutationStateOptions<TResult>,\n): Array<TResult> {\n return mutationCache\n .findAll(options.filters)\n .map(\n (mutation): TResult =>\n (options.select\n ? options.select(\n mutation as Mutation<unknown, DefaultError, unknown, unknown>,\n )\n : mutation.state) as TResult,\n )\n}\n\nexport function useMutationState<TResult = MutationState>(\n options: MutationStateOptions<TResult> = {},\n queryClient?: QueryClient,\n): Array<TResult> {\n const mutationCache = useQueryClient(queryClient).getMutationCache()\n const optionsRef = React.useRef(options)\n const result = React.useRef<Array<TResult>>()\n if (!result.current) {\n result.current = getResult(mutationCache, options)\n }\n\n React.useEffect(() => {\n optionsRef.current = options\n })\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n mutationCache.subscribe(() => {\n const nextResult = replaceEqualDeep(\n result.current,\n getResult(mutationCache, optionsRef.current),\n )\n if (result.current !== nextResult) {\n result.current = nextResult\n notifyManager.schedule(onStoreChange)\n }\n }),\n [mutationCache],\n ),\n () => result.current,\n () => result.current,\n )!\n}\n"],"names":["filters","status","notifyManager"],"mappings":";;;;;AAcO;AAIL;AACA;AACIA;AAAW;AAAYC;AAAkB;AAAE;AAGjD;AASA;;AAcA;AAEO;;AAKL;AACA;AACA;;AAEA;;;AAIA;AAEA;AAIQ;AAIA;;AAEEC;AACF;AACF;AAMR;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { QueryKey, QueryFunction, QueriesPlaceholderDataFunction, QueryClient, DefaultError } from '@tanstack/query-core';
|
|
2
2
|
import type { UseQueryOptions, UseQueryResult } from './types';
|
|
3
|
-
|
|
3
|
+
type UseQueryOptionsForUseQueries<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'placeholderData'> & {
|
|
4
4
|
placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>;
|
|
5
5
|
};
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
type MAXIMUM_DEPTH = 20;
|
|
7
|
+
type GetOptions<T> = T extends {
|
|
8
8
|
queryFnData: infer TQueryFnData;
|
|
9
9
|
error?: infer TError;
|
|
10
10
|
data: infer TData;
|
|
@@ -20,7 +20,7 @@ declare type GetOptions<T> = T extends {
|
|
|
20
20
|
} ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey> : T extends {
|
|
21
21
|
queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>;
|
|
22
22
|
} ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey> : UseQueryOptionsForUseQueries;
|
|
23
|
-
|
|
23
|
+
type GetResults<T> = T extends {
|
|
24
24
|
queryFnData: any;
|
|
25
25
|
error?: infer TError;
|
|
26
26
|
data: infer TData;
|
|
@@ -39,12 +39,14 @@ declare type GetResults<T> = T extends {
|
|
|
39
39
|
/**
|
|
40
40
|
* QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
|
|
41
41
|
*/
|
|
42
|
-
export
|
|
42
|
+
export type QueriesOptions<T extends any[], Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? UseQueryOptionsForUseQueries[] : T extends [] ? [] : T extends [infer Head] ? [...Result, GetOptions<Head>] : T extends [infer Head, ...infer Tail] ? QueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]> : unknown[] extends T ? T : T extends UseQueryOptionsForUseQueries<infer TQueryFnData, infer TError, infer TData, infer TQueryKey>[] ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[] : UseQueryOptionsForUseQueries[];
|
|
43
43
|
/**
|
|
44
44
|
* QueriesResults reducer recursively maps type param to results
|
|
45
45
|
*/
|
|
46
|
-
export
|
|
47
|
-
export declare function useQueries<T extends any[]
|
|
46
|
+
export type QueriesResults<T extends any[], Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? UseQueryResult[] : T extends [] ? [] : T extends [infer Head] ? [...Result, GetResults<Head>] : T extends [infer Head, ...infer Tail] ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]> : T extends UseQueryOptionsForUseQueries<infer TQueryFnData, infer TError, infer TData, any>[] ? UseQueryResult<unknown extends TData ? TQueryFnData : TData, unknown extends TError ? DefaultError : TError>[] : UseQueryResult[];
|
|
47
|
+
export declare function useQueries<T extends any[], TCombinedResult = QueriesResults<T>>({ queries, ...options }: {
|
|
48
48
|
queries: readonly [...QueriesOptions<T>];
|
|
49
|
-
|
|
49
|
+
combine?: (result: QueriesResults<T>) => TCombinedResult;
|
|
50
|
+
}, queryClient?: QueryClient): TCombinedResult;
|
|
50
51
|
export {};
|
|
52
|
+
//# sourceMappingURL=useQueries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useQueries.d.ts","sourceRoot":"","sources":["../../src/useQueries.ts"],"names":[],"mappings":"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"}
|