@depup/tanstack__react-query 5.91.0-depup.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.
- package/LICENSE +21 -0
- package/README.md +25 -0
- package/build/codemods/src/utils/index.cjs +208 -0
- package/build/codemods/src/utils/transformers/query-cache-transformer.cjs +124 -0
- package/build/codemods/src/utils/transformers/query-client-transformer.cjs +53 -0
- package/build/codemods/src/utils/transformers/use-query-like-transformer.cjs +38 -0
- package/build/codemods/src/v4/key-transformation.cjs +181 -0
- package/build/codemods/src/v4/replace-import-specifier.cjs +25 -0
- package/build/codemods/src/v4/utils/replacers/key-replacer.cjs +164 -0
- package/build/codemods/src/v5/is-loading/is-loading.cjs +244 -0
- package/build/codemods/src/v5/keep-previous-data/README.md +32 -0
- package/build/codemods/src/v5/keep-previous-data/keep-previous-data.cjs +271 -0
- package/build/codemods/src/v5/keep-previous-data/utils/already-has-placeholder-data-property.cjs +26 -0
- package/build/codemods/src/v5/remove-overloads/remove-overloads.cjs +58 -0
- package/build/codemods/src/v5/remove-overloads/transformers/filter-aware-usage-transformer.cjs +271 -0
- package/build/codemods/src/v5/remove-overloads/transformers/query-fn-aware-usage-transformer.cjs +185 -0
- package/build/codemods/src/v5/remove-overloads/utils/index.cjs +123 -0
- package/build/codemods/src/v5/remove-overloads/utils/unknown-usage-error.cjs +27 -0
- package/build/codemods/src/v5/rename-hydrate/rename-hydrate.cjs +55 -0
- package/build/codemods/src/v5/rename-properties/rename-properties.cjs +41 -0
- package/build/legacy/HydrationBoundary.cjs +91 -0
- package/build/legacy/HydrationBoundary.cjs.map +1 -0
- package/build/legacy/HydrationBoundary.d.cts +2 -0
- package/build/legacy/HydrationBoundary.d.ts +2 -0
- package/build/legacy/HydrationBoundary.js +57 -0
- package/build/legacy/HydrationBoundary.js.map +1 -0
- package/build/legacy/IsRestoringProvider.cjs +47 -0
- package/build/legacy/IsRestoringProvider.cjs.map +1 -0
- package/build/legacy/IsRestoringProvider.d.cts +2 -0
- package/build/legacy/IsRestoringProvider.d.ts +2 -0
- package/build/legacy/IsRestoringProvider.js +12 -0
- package/build/legacy/IsRestoringProvider.js.map +1 -0
- package/build/legacy/QueryClientProvider.cjs +72 -0
- package/build/legacy/QueryClientProvider.cjs.map +1 -0
- package/build/legacy/QueryClientProvider.d.cts +4 -0
- package/build/legacy/QueryClientProvider.d.ts +4 -0
- package/build/legacy/QueryClientProvider.js +36 -0
- package/build/legacy/QueryClientProvider.js.map +1 -0
- package/build/legacy/QueryErrorResetBoundary.cjs +67 -0
- package/build/legacy/QueryErrorResetBoundary.cjs.map +1 -0
- package/build/legacy/QueryErrorResetBoundary.d.cts +8 -0
- package/build/legacy/QueryErrorResetBoundary.d.ts +8 -0
- package/build/legacy/QueryErrorResetBoundary.js +32 -0
- package/build/legacy/QueryErrorResetBoundary.js.map +1 -0
- package/build/legacy/_tsup-dts-rollup.d.cts +993 -0
- package/build/legacy/_tsup-dts-rollup.d.ts +993 -0
- package/build/legacy/errorBoundaryUtils.cjs +69 -0
- package/build/legacy/errorBoundaryUtils.cjs.map +1 -0
- package/build/legacy/errorBoundaryUtils.d.cts +3 -0
- package/build/legacy/errorBoundaryUtils.d.ts +3 -0
- package/build/legacy/errorBoundaryUtils.js +33 -0
- package/build/legacy/errorBoundaryUtils.js.map +1 -0
- package/build/legacy/index.cjs +97 -0
- package/build/legacy/index.cjs.map +1 -0
- package/build/legacy/index.d.cts +206 -0
- package/build/legacy/index.d.ts +206 -0
- package/build/legacy/index.js +54 -0
- package/build/legacy/index.js.map +1 -0
- package/build/legacy/infiniteQueryOptions.cjs +33 -0
- package/build/legacy/infiniteQueryOptions.cjs.map +1 -0
- package/build/legacy/infiniteQueryOptions.d.cts +4 -0
- package/build/legacy/infiniteQueryOptions.d.ts +4 -0
- package/build/legacy/infiniteQueryOptions.js +8 -0
- package/build/legacy/infiniteQueryOptions.js.map +1 -0
- package/build/legacy/mutationOptions.cjs +33 -0
- package/build/legacy/mutationOptions.cjs.map +1 -0
- package/build/legacy/mutationOptions.d.cts +1 -0
- package/build/legacy/mutationOptions.d.ts +1 -0
- package/build/legacy/mutationOptions.js +8 -0
- package/build/legacy/mutationOptions.js.map +1 -0
- package/build/legacy/queryOptions.cjs +33 -0
- package/build/legacy/queryOptions.cjs.map +1 -0
- package/build/legacy/queryOptions.d.cts +4 -0
- package/build/legacy/queryOptions.d.ts +4 -0
- package/build/legacy/queryOptions.js +8 -0
- package/build/legacy/queryOptions.js.map +1 -0
- package/build/legacy/suspense.cjs +58 -0
- package/build/legacy/suspense.cjs.map +1 -0
- package/build/legacy/suspense.d.cts +5 -0
- package/build/legacy/suspense.d.ts +5 -0
- package/build/legacy/suspense.js +29 -0
- package/build/legacy/suspense.js.map +1 -0
- package/build/legacy/types.cjs +19 -0
- package/build/legacy/types.cjs.map +1 -0
- package/build/legacy/types.d.cts +24 -0
- package/build/legacy/types.d.ts +24 -0
- package/build/legacy/types.js +1 -0
- package/build/legacy/types.js.map +1 -0
- package/build/legacy/useBaseQuery.cjs +133 -0
- package/build/legacy/useBaseQuery.cjs.map +1 -0
- package/build/legacy/useBaseQuery.d.cts +1 -0
- package/build/legacy/useBaseQuery.d.ts +1 -0
- package/build/legacy/useBaseQuery.js +108 -0
- package/build/legacy/useBaseQuery.js.map +1 -0
- package/build/legacy/useInfiniteQuery.cjs +40 -0
- package/build/legacy/useInfiniteQuery.cjs.map +1 -0
- package/build/legacy/useInfiniteQuery.d.cts +1 -0
- package/build/legacy/useInfiniteQuery.d.ts +1 -0
- package/build/legacy/useInfiniteQuery.js +16 -0
- package/build/legacy/useInfiniteQuery.js.map +1 -0
- package/build/legacy/useIsFetching.cjs +56 -0
- package/build/legacy/useIsFetching.cjs.map +1 -0
- package/build/legacy/useIsFetching.d.cts +1 -0
- package/build/legacy/useIsFetching.d.ts +1 -0
- package/build/legacy/useIsFetching.js +22 -0
- package/build/legacy/useIsFetching.js.map +1 -0
- package/build/legacy/useMutation.cjs +74 -0
- package/build/legacy/useMutation.cjs.map +1 -0
- package/build/legacy/useMutation.d.cts +1 -0
- package/build/legacy/useMutation.d.ts +1 -0
- package/build/legacy/useMutation.js +45 -0
- package/build/legacy/useMutation.js.map +1 -0
- package/build/legacy/useMutationState.cjs +86 -0
- package/build/legacy/useMutationState.cjs.map +1 -0
- package/build/legacy/useMutationState.d.cts +2 -0
- package/build/legacy/useMutationState.d.ts +2 -0
- package/build/legacy/useMutationState.js +51 -0
- package/build/legacy/useMutationState.js.map +1 -0
- package/build/legacy/usePrefetchInfiniteQuery.cjs +37 -0
- package/build/legacy/usePrefetchInfiniteQuery.cjs.map +1 -0
- package/build/legacy/usePrefetchInfiniteQuery.d.cts +1 -0
- package/build/legacy/usePrefetchInfiniteQuery.d.ts +1 -0
- package/build/legacy/usePrefetchInfiniteQuery.js +12 -0
- package/build/legacy/usePrefetchInfiniteQuery.js.map +1 -0
- package/build/legacy/usePrefetchQuery.cjs +37 -0
- package/build/legacy/usePrefetchQuery.cjs.map +1 -0
- package/build/legacy/usePrefetchQuery.d.cts +1 -0
- package/build/legacy/usePrefetchQuery.d.ts +1 -0
- package/build/legacy/usePrefetchQuery.js +12 -0
- package/build/legacy/usePrefetchQuery.js.map +1 -0
- package/build/legacy/useQueries.cjs +128 -0
- package/build/legacy/useQueries.cjs.map +1 -0
- package/build/legacy/useQueries.d.cts +3 -0
- package/build/legacy/useQueries.d.ts +3 -0
- package/build/legacy/useQueries.js +107 -0
- package/build/legacy/useQueries.js.map +1 -0
- package/build/legacy/useQuery.cjs +36 -0
- package/build/legacy/useQuery.cjs.map +1 -0
- package/build/legacy/useQuery.d.cts +1 -0
- package/build/legacy/useQuery.d.ts +1 -0
- package/build/legacy/useQuery.js +12 -0
- package/build/legacy/useQuery.js.map +1 -0
- package/build/legacy/useSuspenseInfiniteQuery.cjs +51 -0
- package/build/legacy/useSuspenseInfiniteQuery.cjs.map +1 -0
- package/build/legacy/useSuspenseInfiniteQuery.d.cts +1 -0
- package/build/legacy/useSuspenseInfiniteQuery.d.ts +1 -0
- package/build/legacy/useSuspenseInfiniteQuery.js +27 -0
- package/build/legacy/useSuspenseInfiniteQuery.js.map +1 -0
- package/build/legacy/useSuspenseQueries.cjs +56 -0
- package/build/legacy/useSuspenseQueries.cjs.map +1 -0
- package/build/legacy/useSuspenseQueries.d.cts +3 -0
- package/build/legacy/useSuspenseQueries.d.ts +3 -0
- package/build/legacy/useSuspenseQueries.js +32 -0
- package/build/legacy/useSuspenseQueries.js.map +1 -0
- package/build/legacy/useSuspenseQuery.cjs +52 -0
- package/build/legacy/useSuspenseQuery.cjs.map +1 -0
- package/build/legacy/useSuspenseQuery.d.cts +1 -0
- package/build/legacy/useSuspenseQuery.d.ts +1 -0
- package/build/legacy/useSuspenseQuery.js +28 -0
- package/build/legacy/useSuspenseQuery.js.map +1 -0
- package/build/modern/HydrationBoundary.cjs +91 -0
- package/build/modern/HydrationBoundary.cjs.map +1 -0
- package/build/modern/HydrationBoundary.d.cts +2 -0
- package/build/modern/HydrationBoundary.d.ts +2 -0
- package/build/modern/HydrationBoundary.js +57 -0
- package/build/modern/HydrationBoundary.js.map +1 -0
- package/build/modern/IsRestoringProvider.cjs +47 -0
- package/build/modern/IsRestoringProvider.cjs.map +1 -0
- package/build/modern/IsRestoringProvider.d.cts +2 -0
- package/build/modern/IsRestoringProvider.d.ts +2 -0
- package/build/modern/IsRestoringProvider.js +12 -0
- package/build/modern/IsRestoringProvider.js.map +1 -0
- package/build/modern/QueryClientProvider.cjs +72 -0
- package/build/modern/QueryClientProvider.cjs.map +1 -0
- package/build/modern/QueryClientProvider.d.cts +4 -0
- package/build/modern/QueryClientProvider.d.ts +4 -0
- package/build/modern/QueryClientProvider.js +36 -0
- package/build/modern/QueryClientProvider.js.map +1 -0
- package/build/modern/QueryErrorResetBoundary.cjs +67 -0
- package/build/modern/QueryErrorResetBoundary.cjs.map +1 -0
- package/build/modern/QueryErrorResetBoundary.d.cts +8 -0
- package/build/modern/QueryErrorResetBoundary.d.ts +8 -0
- package/build/modern/QueryErrorResetBoundary.js +32 -0
- package/build/modern/QueryErrorResetBoundary.js.map +1 -0
- package/build/modern/_tsup-dts-rollup.d.cts +993 -0
- package/build/modern/_tsup-dts-rollup.d.ts +993 -0
- package/build/modern/errorBoundaryUtils.cjs +69 -0
- package/build/modern/errorBoundaryUtils.cjs.map +1 -0
- package/build/modern/errorBoundaryUtils.d.cts +3 -0
- package/build/modern/errorBoundaryUtils.d.ts +3 -0
- package/build/modern/errorBoundaryUtils.js +33 -0
- package/build/modern/errorBoundaryUtils.js.map +1 -0
- package/build/modern/index.cjs +97 -0
- package/build/modern/index.cjs.map +1 -0
- package/build/modern/index.d.cts +206 -0
- package/build/modern/index.d.ts +206 -0
- package/build/modern/index.js +54 -0
- package/build/modern/index.js.map +1 -0
- package/build/modern/infiniteQueryOptions.cjs +33 -0
- package/build/modern/infiniteQueryOptions.cjs.map +1 -0
- package/build/modern/infiniteQueryOptions.d.cts +4 -0
- package/build/modern/infiniteQueryOptions.d.ts +4 -0
- package/build/modern/infiniteQueryOptions.js +8 -0
- package/build/modern/infiniteQueryOptions.js.map +1 -0
- package/build/modern/mutationOptions.cjs +33 -0
- package/build/modern/mutationOptions.cjs.map +1 -0
- package/build/modern/mutationOptions.d.cts +1 -0
- package/build/modern/mutationOptions.d.ts +1 -0
- package/build/modern/mutationOptions.js +8 -0
- package/build/modern/mutationOptions.js.map +1 -0
- package/build/modern/queryOptions.cjs +33 -0
- package/build/modern/queryOptions.cjs.map +1 -0
- package/build/modern/queryOptions.d.cts +4 -0
- package/build/modern/queryOptions.d.ts +4 -0
- package/build/modern/queryOptions.js +8 -0
- package/build/modern/queryOptions.js.map +1 -0
- package/build/modern/suspense.cjs +58 -0
- package/build/modern/suspense.cjs.map +1 -0
- package/build/modern/suspense.d.cts +5 -0
- package/build/modern/suspense.d.ts +5 -0
- package/build/modern/suspense.js +29 -0
- package/build/modern/suspense.js.map +1 -0
- package/build/modern/types.cjs +19 -0
- package/build/modern/types.cjs.map +1 -0
- package/build/modern/types.d.cts +24 -0
- package/build/modern/types.d.ts +24 -0
- package/build/modern/types.js +1 -0
- package/build/modern/types.js.map +1 -0
- package/build/modern/useBaseQuery.cjs +130 -0
- package/build/modern/useBaseQuery.cjs.map +1 -0
- package/build/modern/useBaseQuery.d.cts +1 -0
- package/build/modern/useBaseQuery.d.ts +1 -0
- package/build/modern/useBaseQuery.js +105 -0
- package/build/modern/useBaseQuery.js.map +1 -0
- package/build/modern/useInfiniteQuery.cjs +40 -0
- package/build/modern/useInfiniteQuery.cjs.map +1 -0
- package/build/modern/useInfiniteQuery.d.cts +1 -0
- package/build/modern/useInfiniteQuery.d.ts +1 -0
- package/build/modern/useInfiniteQuery.js +16 -0
- package/build/modern/useInfiniteQuery.js.map +1 -0
- package/build/modern/useIsFetching.cjs +56 -0
- package/build/modern/useIsFetching.cjs.map +1 -0
- package/build/modern/useIsFetching.d.cts +1 -0
- package/build/modern/useIsFetching.d.ts +1 -0
- package/build/modern/useIsFetching.js +22 -0
- package/build/modern/useIsFetching.js.map +1 -0
- package/build/modern/useMutation.cjs +74 -0
- package/build/modern/useMutation.cjs.map +1 -0
- package/build/modern/useMutation.d.cts +1 -0
- package/build/modern/useMutation.d.ts +1 -0
- package/build/modern/useMutation.js +45 -0
- package/build/modern/useMutation.js.map +1 -0
- package/build/modern/useMutationState.cjs +86 -0
- package/build/modern/useMutationState.cjs.map +1 -0
- package/build/modern/useMutationState.d.cts +2 -0
- package/build/modern/useMutationState.d.ts +2 -0
- package/build/modern/useMutationState.js +51 -0
- package/build/modern/useMutationState.js.map +1 -0
- package/build/modern/usePrefetchInfiniteQuery.cjs +37 -0
- package/build/modern/usePrefetchInfiniteQuery.cjs.map +1 -0
- package/build/modern/usePrefetchInfiniteQuery.d.cts +1 -0
- package/build/modern/usePrefetchInfiniteQuery.d.ts +1 -0
- package/build/modern/usePrefetchInfiniteQuery.js +12 -0
- package/build/modern/usePrefetchInfiniteQuery.js.map +1 -0
- package/build/modern/usePrefetchQuery.cjs +37 -0
- package/build/modern/usePrefetchQuery.cjs.map +1 -0
- package/build/modern/usePrefetchQuery.d.cts +1 -0
- package/build/modern/usePrefetchQuery.d.ts +1 -0
- package/build/modern/usePrefetchQuery.js +12 -0
- package/build/modern/usePrefetchQuery.js.map +1 -0
- package/build/modern/useQueries.cjs +128 -0
- package/build/modern/useQueries.cjs.map +1 -0
- package/build/modern/useQueries.d.cts +3 -0
- package/build/modern/useQueries.d.ts +3 -0
- package/build/modern/useQueries.js +107 -0
- package/build/modern/useQueries.js.map +1 -0
- package/build/modern/useQuery.cjs +36 -0
- package/build/modern/useQuery.cjs.map +1 -0
- package/build/modern/useQuery.d.cts +1 -0
- package/build/modern/useQuery.d.ts +1 -0
- package/build/modern/useQuery.js +12 -0
- package/build/modern/useQuery.js.map +1 -0
- package/build/modern/useSuspenseInfiniteQuery.cjs +51 -0
- package/build/modern/useSuspenseInfiniteQuery.cjs.map +1 -0
- package/build/modern/useSuspenseInfiniteQuery.d.cts +1 -0
- package/build/modern/useSuspenseInfiniteQuery.d.ts +1 -0
- package/build/modern/useSuspenseInfiniteQuery.js +27 -0
- package/build/modern/useSuspenseInfiniteQuery.js.map +1 -0
- package/build/modern/useSuspenseQueries.cjs +56 -0
- package/build/modern/useSuspenseQueries.cjs.map +1 -0
- package/build/modern/useSuspenseQueries.d.cts +3 -0
- package/build/modern/useSuspenseQueries.d.ts +3 -0
- package/build/modern/useSuspenseQueries.js +32 -0
- package/build/modern/useSuspenseQueries.js.map +1 -0
- package/build/modern/useSuspenseQuery.cjs +52 -0
- package/build/modern/useSuspenseQuery.cjs.map +1 -0
- package/build/modern/useSuspenseQuery.d.cts +1 -0
- package/build/modern/useSuspenseQuery.d.ts +1 -0
- package/build/modern/useSuspenseQuery.js +28 -0
- package/build/modern/useSuspenseQuery.js.map +1 -0
- package/build/query-codemods/eslint.config.js +18 -0
- package/build/query-codemods/package.json +38 -0
- package/build/query-codemods/root.eslint.config.js +64 -0
- package/build/query-codemods/tsconfig.json +8 -0
- package/build/query-codemods/vite.config.ts +30 -0
- package/changes.json +5 -0
- package/package.json +104 -0
- package/src/HydrationBoundary.tsx +111 -0
- package/src/IsRestoringProvider.ts +7 -0
- package/src/QueryClientProvider.tsx +45 -0
- package/src/QueryErrorResetBoundary.tsx +56 -0
- package/src/errorBoundaryUtils.ts +82 -0
- package/src/index.ts +56 -0
- package/src/infiniteQueryOptions.ts +149 -0
- package/src/mutationOptions.ts +41 -0
- package/src/queryOptions.ts +87 -0
- package/src/suspense.ts +80 -0
- package/src/types.ts +242 -0
- package/src/useBaseQuery.ts +170 -0
- package/src/useInfiniteQuery.ts +81 -0
- package/src/useIsFetching.ts +24 -0
- package/src/useMutation.ts +69 -0
- package/src/useMutationState.ts +75 -0
- package/src/usePrefetchInfiniteQuery.tsx +30 -0
- package/src/usePrefetchQuery.tsx +19 -0
- package/src/useQueries.ts +328 -0
- package/src/useQuery.ts +52 -0
- package/src/useSuspenseInfiniteQuery.ts +50 -0
- package/src/useSuspenseQueries.ts +211 -0
- package/src/useSuspenseQuery.ts +34 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/useMutation.ts
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import {
|
|
6
|
+
MutationObserver,
|
|
7
|
+
noop,
|
|
8
|
+
notifyManager,
|
|
9
|
+
shouldThrowError
|
|
10
|
+
} from "@tanstack/query-core";
|
|
11
|
+
import { useQueryClient } from "./QueryClientProvider.js";
|
|
12
|
+
function useMutation(options, queryClient) {
|
|
13
|
+
const client = useQueryClient(queryClient);
|
|
14
|
+
const [observer] = React.useState(
|
|
15
|
+
() => new MutationObserver(
|
|
16
|
+
client,
|
|
17
|
+
options
|
|
18
|
+
)
|
|
19
|
+
);
|
|
20
|
+
React.useEffect(() => {
|
|
21
|
+
observer.setOptions(options);
|
|
22
|
+
}, [observer, options]);
|
|
23
|
+
const result = React.useSyncExternalStore(
|
|
24
|
+
React.useCallback(
|
|
25
|
+
(onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),
|
|
26
|
+
[observer]
|
|
27
|
+
),
|
|
28
|
+
() => observer.getCurrentResult(),
|
|
29
|
+
() => observer.getCurrentResult()
|
|
30
|
+
);
|
|
31
|
+
const mutate = React.useCallback(
|
|
32
|
+
(variables, mutateOptions) => {
|
|
33
|
+
observer.mutate(variables, mutateOptions).catch(noop);
|
|
34
|
+
},
|
|
35
|
+
[observer]
|
|
36
|
+
);
|
|
37
|
+
if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {
|
|
38
|
+
throw result.error;
|
|
39
|
+
}
|
|
40
|
+
return { ...result, mutate, mutateAsync: result.mutate };
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
useMutation
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=useMutation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/useMutation.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport type { DefaultError, QueryClient } from '@tanstack/query-core'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TOnMutateResult = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TOnMutateResult>,\n queryClient?: QueryClient,\n): UseMutationResult<TData, TError, TVariables, TOnMutateResult> {\n const client = useQueryClient(queryClient)\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TOnMutateResult>(\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, TOnMutateResult>\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"],"mappings":";;;AACA,YAAY,WAAW;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAUxB,SAAS,YAMd,SACA,aAC+D;AAC/D,QAAM,SAAS,eAAe,WAAW;AAEzC,QAAM,CAAC,QAAQ,IAAU;AAAA,IACvB,MACE,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACJ;AAEA,EAAM,gBAAU,MAAM;AACpB,aAAS,WAAW,OAAO;AAAA,EAC7B,GAAG,CAAC,UAAU,OAAO,CAAC;AAEtB,QAAM,SAAe;AAAA,IACb;AAAA,MACJ,CAAC,kBACC,SAAS,UAAU,cAAc,WAAW,aAAa,CAAC;AAAA,MAC5D,CAAC,QAAQ;AAAA,IACX;AAAA,IACA,MAAM,SAAS,iBAAiB;AAAA,IAChC,MAAM,SAAS,iBAAiB;AAAA,EAClC;AAEA,QAAM,SAAe;AAAA,IAGnB,CAAC,WAAW,kBAAkB;AAC5B,eAAS,OAAO,WAAW,aAAa,EAAE,MAAM,IAAI;AAAA,IACtD;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,MACE,OAAO,SACP,iBAAiB,SAAS,QAAQ,cAAc,CAAC,OAAO,KAAK,CAAC,GAC9D;AACA,UAAM,OAAO;AAAA,EACf;AAEA,SAAO,EAAE,GAAG,QAAQ,QAAQ,aAAa,OAAO,OAAO;AACzD;","names":[]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
|
|
31
|
+
// src/useMutationState.ts
|
|
32
|
+
var useMutationState_exports = {};
|
|
33
|
+
__export(useMutationState_exports, {
|
|
34
|
+
useIsMutating: () => useIsMutating,
|
|
35
|
+
useMutationState: () => useMutationState
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(useMutationState_exports);
|
|
38
|
+
var React = __toESM(require("react"), 1);
|
|
39
|
+
var import_query_core = require("@tanstack/query-core");
|
|
40
|
+
var import_QueryClientProvider = require("./QueryClientProvider.cjs");
|
|
41
|
+
function useIsMutating(filters, queryClient) {
|
|
42
|
+
const client = (0, import_QueryClientProvider.useQueryClient)(queryClient);
|
|
43
|
+
return useMutationState(
|
|
44
|
+
{ filters: { ...filters, status: "pending" } },
|
|
45
|
+
client
|
|
46
|
+
).length;
|
|
47
|
+
}
|
|
48
|
+
function getResult(mutationCache, options) {
|
|
49
|
+
return mutationCache.findAll(options.filters).map(
|
|
50
|
+
(mutation) => options.select ? options.select(mutation) : mutation.state
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
function useMutationState(options = {}, queryClient) {
|
|
54
|
+
const mutationCache = (0, import_QueryClientProvider.useQueryClient)(queryClient).getMutationCache();
|
|
55
|
+
const optionsRef = React.useRef(options);
|
|
56
|
+
const result = React.useRef(null);
|
|
57
|
+
if (result.current === null) {
|
|
58
|
+
result.current = getResult(mutationCache, options);
|
|
59
|
+
}
|
|
60
|
+
React.useEffect(() => {
|
|
61
|
+
optionsRef.current = options;
|
|
62
|
+
});
|
|
63
|
+
return React.useSyncExternalStore(
|
|
64
|
+
React.useCallback(
|
|
65
|
+
(onStoreChange) => mutationCache.subscribe(() => {
|
|
66
|
+
const nextResult = (0, import_query_core.replaceEqualDeep)(
|
|
67
|
+
result.current,
|
|
68
|
+
getResult(mutationCache, optionsRef.current)
|
|
69
|
+
);
|
|
70
|
+
if (result.current !== nextResult) {
|
|
71
|
+
result.current = nextResult;
|
|
72
|
+
import_query_core.notifyManager.schedule(onStoreChange);
|
|
73
|
+
}
|
|
74
|
+
}),
|
|
75
|
+
[mutationCache]
|
|
76
|
+
),
|
|
77
|
+
() => result.current,
|
|
78
|
+
() => result.current
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
82
|
+
0 && (module.exports = {
|
|
83
|
+
useIsMutating,
|
|
84
|
+
useMutationState
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=useMutationState.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/useMutationState.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport { notifyManager, replaceEqualDeep } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n Mutation,\n MutationCache,\n MutationFilters,\n MutationState,\n QueryClient,\n} from '@tanstack/query-core'\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?: (mutation: Mutation) => 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 ? options.select(mutation) : 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>>(null)\n if (result.current === null) {\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,YAAuB;AAEvB,wBAAgD;AAChD,iCAA+B;AASxB,SAAS,cACd,SACA,aACQ;AACR,QAAM,aAAS,2CAAe,WAAW;AACzC,SAAO;AAAA,IACL,EAAE,SAAS,EAAE,GAAG,SAAS,QAAQ,UAAU,EAAE;AAAA,IAC7C;AAAA,EACF,EAAE;AACJ;AAOA,SAAS,UACP,eACA,SACgB;AAChB,SAAO,cACJ,QAAQ,QAAQ,OAAO,EACvB;AAAA,IACC,CAAC,aACE,QAAQ,SAAS,QAAQ,OAAO,QAAQ,IAAI,SAAS;AAAA,EAC1D;AACJ;AAEO,SAAS,iBACd,UAAyC,CAAC,GAC1C,aACgB;AAChB,QAAM,oBAAgB,2CAAe,WAAW,EAAE,iBAAiB;AACnE,QAAM,aAAmB,aAAO,OAAO;AACvC,QAAM,SAAe,aAAuB,IAAI;AAChD,MAAI,OAAO,YAAY,MAAM;AAC3B,WAAO,UAAU,UAAU,eAAe,OAAO;AAAA,EACnD;AAEA,EAAM,gBAAU,MAAM;AACpB,eAAW,UAAU;AAAA,EACvB,CAAC;AAED,SAAa;AAAA,IACL;AAAA,MACJ,CAAC,kBACC,cAAc,UAAU,MAAM;AAC5B,cAAM,iBAAa;AAAA,UACjB,OAAO;AAAA,UACP,UAAU,eAAe,WAAW,OAAO;AAAA,QAC7C;AACA,YAAI,OAAO,YAAY,YAAY;AACjC,iBAAO,UAAU;AACjB,0CAAc,SAAS,aAAa;AAAA,QACtC;AAAA,MACF,CAAC;AAAA,MACH,CAAC,aAAa;AAAA,IAChB;AAAA,IACA,MAAM,OAAO;AAAA,IACb,MAAM,OAAO;AAAA,EACf;AACF;","names":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/useMutationState.ts
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { notifyManager, replaceEqualDeep } from "@tanstack/query-core";
|
|
6
|
+
import { useQueryClient } from "./QueryClientProvider.js";
|
|
7
|
+
function useIsMutating(filters, queryClient) {
|
|
8
|
+
const client = useQueryClient(queryClient);
|
|
9
|
+
return useMutationState(
|
|
10
|
+
{ filters: { ...filters, status: "pending" } },
|
|
11
|
+
client
|
|
12
|
+
).length;
|
|
13
|
+
}
|
|
14
|
+
function getResult(mutationCache, options) {
|
|
15
|
+
return mutationCache.findAll(options.filters).map(
|
|
16
|
+
(mutation) => options.select ? options.select(mutation) : mutation.state
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
function useMutationState(options = {}, queryClient) {
|
|
20
|
+
const mutationCache = useQueryClient(queryClient).getMutationCache();
|
|
21
|
+
const optionsRef = React.useRef(options);
|
|
22
|
+
const result = React.useRef(null);
|
|
23
|
+
if (result.current === null) {
|
|
24
|
+
result.current = getResult(mutationCache, options);
|
|
25
|
+
}
|
|
26
|
+
React.useEffect(() => {
|
|
27
|
+
optionsRef.current = options;
|
|
28
|
+
});
|
|
29
|
+
return React.useSyncExternalStore(
|
|
30
|
+
React.useCallback(
|
|
31
|
+
(onStoreChange) => mutationCache.subscribe(() => {
|
|
32
|
+
const nextResult = replaceEqualDeep(
|
|
33
|
+
result.current,
|
|
34
|
+
getResult(mutationCache, optionsRef.current)
|
|
35
|
+
);
|
|
36
|
+
if (result.current !== nextResult) {
|
|
37
|
+
result.current = nextResult;
|
|
38
|
+
notifyManager.schedule(onStoreChange);
|
|
39
|
+
}
|
|
40
|
+
}),
|
|
41
|
+
[mutationCache]
|
|
42
|
+
),
|
|
43
|
+
() => result.current,
|
|
44
|
+
() => result.current
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
useIsMutating,
|
|
49
|
+
useMutationState
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=useMutationState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/useMutationState.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport { notifyManager, replaceEqualDeep } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n Mutation,\n MutationCache,\n MutationFilters,\n MutationState,\n QueryClient,\n} from '@tanstack/query-core'\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?: (mutation: Mutation) => 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 ? options.select(mutation) : 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>>(null)\n if (result.current === null) {\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"],"mappings":";;;AACA,YAAY,WAAW;AAEvB,SAAS,eAAe,wBAAwB;AAChD,SAAS,sBAAsB;AASxB,SAAS,cACd,SACA,aACQ;AACR,QAAM,SAAS,eAAe,WAAW;AACzC,SAAO;AAAA,IACL,EAAE,SAAS,EAAE,GAAG,SAAS,QAAQ,UAAU,EAAE;AAAA,IAC7C;AAAA,EACF,EAAE;AACJ;AAOA,SAAS,UACP,eACA,SACgB;AAChB,SAAO,cACJ,QAAQ,QAAQ,OAAO,EACvB;AAAA,IACC,CAAC,aACE,QAAQ,SAAS,QAAQ,OAAO,QAAQ,IAAI,SAAS;AAAA,EAC1D;AACJ;AAEO,SAAS,iBACd,UAAyC,CAAC,GAC1C,aACgB;AAChB,QAAM,gBAAgB,eAAe,WAAW,EAAE,iBAAiB;AACnE,QAAM,aAAmB,aAAO,OAAO;AACvC,QAAM,SAAe,aAAuB,IAAI;AAChD,MAAI,OAAO,YAAY,MAAM;AAC3B,WAAO,UAAU,UAAU,eAAe,OAAO;AAAA,EACnD;AAEA,EAAM,gBAAU,MAAM;AACpB,eAAW,UAAU;AAAA,EACvB,CAAC;AAED,SAAa;AAAA,IACL;AAAA,MACJ,CAAC,kBACC,cAAc,UAAU,MAAM;AAC5B,cAAM,aAAa;AAAA,UACjB,OAAO;AAAA,UACP,UAAU,eAAe,WAAW,OAAO;AAAA,QAC7C;AACA,YAAI,OAAO,YAAY,YAAY;AACjC,iBAAO,UAAU;AACjB,wBAAc,SAAS,aAAa;AAAA,QACtC;AAAA,MACF,CAAC;AAAA,MACH,CAAC,aAAa;AAAA,IAChB;AAAA,IACA,MAAM,OAAO;AAAA,IACb,MAAM,OAAO;AAAA,EACf;AACF;","names":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/usePrefetchInfiniteQuery.tsx
|
|
21
|
+
var usePrefetchInfiniteQuery_exports = {};
|
|
22
|
+
__export(usePrefetchInfiniteQuery_exports, {
|
|
23
|
+
usePrefetchInfiniteQuery: () => usePrefetchInfiniteQuery
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(usePrefetchInfiniteQuery_exports);
|
|
26
|
+
var import_QueryClientProvider = require("./QueryClientProvider.cjs");
|
|
27
|
+
function usePrefetchInfiniteQuery(options, queryClient) {
|
|
28
|
+
const client = (0, import_QueryClientProvider.useQueryClient)(queryClient);
|
|
29
|
+
if (!client.getQueryState(options.queryKey)) {
|
|
30
|
+
client.prefetchInfiniteQuery(options);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
34
|
+
0 && (module.exports = {
|
|
35
|
+
usePrefetchInfiniteQuery
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=usePrefetchInfiniteQuery.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/usePrefetchInfiniteQuery.tsx"],"sourcesContent":["import { useQueryClient } from './QueryClientProvider'\nimport type {\n DefaultError,\n FetchInfiniteQueryOptions,\n QueryClient,\n QueryKey,\n} from '@tanstack/query-core'\n\nexport function usePrefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n) {\n const client = useQueryClient(queryClient)\n\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchInfiniteQuery(options)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAA+B;AAQxB,SAAS,yBAOd,SAOA,aACA;AACA,QAAM,aAAS,2CAAe,WAAW;AAEzC,MAAI,CAAC,OAAO,cAAc,QAAQ,QAAQ,GAAG;AAC3C,WAAO,sBAAsB,OAAO;AAAA,EACtC;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { usePrefetchInfiniteQuery_alias_1 as usePrefetchInfiniteQuery } from './_tsup-dts-rollup.cjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { usePrefetchInfiniteQuery_alias_1 as usePrefetchInfiniteQuery } from './_tsup-dts-rollup.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// src/usePrefetchInfiniteQuery.tsx
|
|
2
|
+
import { useQueryClient } from "./QueryClientProvider.js";
|
|
3
|
+
function usePrefetchInfiniteQuery(options, queryClient) {
|
|
4
|
+
const client = useQueryClient(queryClient);
|
|
5
|
+
if (!client.getQueryState(options.queryKey)) {
|
|
6
|
+
client.prefetchInfiniteQuery(options);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
usePrefetchInfiniteQuery
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=usePrefetchInfiniteQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/usePrefetchInfiniteQuery.tsx"],"sourcesContent":["import { useQueryClient } from './QueryClientProvider'\nimport type {\n DefaultError,\n FetchInfiniteQueryOptions,\n QueryClient,\n QueryKey,\n} from '@tanstack/query-core'\n\nexport function usePrefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n) {\n const client = useQueryClient(queryClient)\n\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchInfiniteQuery(options)\n }\n}\n"],"mappings":";AAAA,SAAS,sBAAsB;AAQxB,SAAS,yBAOd,SAOA,aACA;AACA,QAAM,SAAS,eAAe,WAAW;AAEzC,MAAI,CAAC,OAAO,cAAc,QAAQ,QAAQ,GAAG;AAC3C,WAAO,sBAAsB,OAAO;AAAA,EACtC;AACF;","names":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/usePrefetchQuery.tsx
|
|
21
|
+
var usePrefetchQuery_exports = {};
|
|
22
|
+
__export(usePrefetchQuery_exports, {
|
|
23
|
+
usePrefetchQuery: () => usePrefetchQuery
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(usePrefetchQuery_exports);
|
|
26
|
+
var import_QueryClientProvider = require("./QueryClientProvider.cjs");
|
|
27
|
+
function usePrefetchQuery(options, queryClient) {
|
|
28
|
+
const client = (0, import_QueryClientProvider.useQueryClient)(queryClient);
|
|
29
|
+
if (!client.getQueryState(options.queryKey)) {
|
|
30
|
+
client.prefetchQuery(options);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
34
|
+
0 && (module.exports = {
|
|
35
|
+
usePrefetchQuery
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=usePrefetchQuery.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/usePrefetchQuery.tsx"],"sourcesContent":["import { useQueryClient } from './QueryClientProvider'\nimport type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core'\nimport type { UsePrefetchQueryOptions } from './types'\n\nexport function usePrefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UsePrefetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n) {\n const client = useQueryClient(queryClient)\n\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchQuery(options)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAA+B;AAIxB,SAAS,iBAMd,SACA,aACA;AACA,QAAM,aAAS,2CAAe,WAAW;AAEzC,MAAI,CAAC,OAAO,cAAc,QAAQ,QAAQ,GAAG;AAC3C,WAAO,cAAc,OAAO;AAAA,EAC9B;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { usePrefetchQuery_alias_1 as usePrefetchQuery } from './_tsup-dts-rollup.cjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { usePrefetchQuery_alias_1 as usePrefetchQuery } from './_tsup-dts-rollup.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// src/usePrefetchQuery.tsx
|
|
2
|
+
import { useQueryClient } from "./QueryClientProvider.js";
|
|
3
|
+
function usePrefetchQuery(options, queryClient) {
|
|
4
|
+
const client = useQueryClient(queryClient);
|
|
5
|
+
if (!client.getQueryState(options.queryKey)) {
|
|
6
|
+
client.prefetchQuery(options);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
usePrefetchQuery
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=usePrefetchQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/usePrefetchQuery.tsx"],"sourcesContent":["import { useQueryClient } from './QueryClientProvider'\nimport type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core'\nimport type { UsePrefetchQueryOptions } from './types'\n\nexport function usePrefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UsePrefetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n) {\n const client = useQueryClient(queryClient)\n\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchQuery(options)\n }\n}\n"],"mappings":";AAAA,SAAS,sBAAsB;AAIxB,SAAS,iBAMd,SACA,aACA;AACA,QAAM,SAAS,eAAe,WAAW;AAEzC,MAAI,CAAC,OAAO,cAAc,QAAQ,QAAQ,GAAG;AAC3C,WAAO,cAAc,OAAO;AAAA,EAC9B;AACF;","names":[]}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
|
|
31
|
+
// src/useQueries.ts
|
|
32
|
+
var useQueries_exports = {};
|
|
33
|
+
__export(useQueries_exports, {
|
|
34
|
+
useQueries: () => useQueries
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(useQueries_exports);
|
|
37
|
+
var React = __toESM(require("react"), 1);
|
|
38
|
+
var import_query_core = require("@tanstack/query-core");
|
|
39
|
+
var import_QueryClientProvider = require("./QueryClientProvider.cjs");
|
|
40
|
+
var import_IsRestoringProvider = require("./IsRestoringProvider.cjs");
|
|
41
|
+
var import_QueryErrorResetBoundary = require("./QueryErrorResetBoundary.cjs");
|
|
42
|
+
var import_errorBoundaryUtils = require("./errorBoundaryUtils.cjs");
|
|
43
|
+
var import_suspense = require("./suspense.cjs");
|
|
44
|
+
function useQueries({
|
|
45
|
+
queries,
|
|
46
|
+
...options
|
|
47
|
+
}, queryClient) {
|
|
48
|
+
const client = (0, import_QueryClientProvider.useQueryClient)(queryClient);
|
|
49
|
+
const isRestoring = (0, import_IsRestoringProvider.useIsRestoring)();
|
|
50
|
+
const errorResetBoundary = (0, import_QueryErrorResetBoundary.useQueryErrorResetBoundary)();
|
|
51
|
+
const defaultedQueries = React.useMemo(
|
|
52
|
+
() => queries.map((opts) => {
|
|
53
|
+
const defaultedOptions = client.defaultQueryOptions(
|
|
54
|
+
opts
|
|
55
|
+
);
|
|
56
|
+
defaultedOptions._optimisticResults = isRestoring ? "isRestoring" : "optimistic";
|
|
57
|
+
return defaultedOptions;
|
|
58
|
+
}),
|
|
59
|
+
[queries, client, isRestoring]
|
|
60
|
+
);
|
|
61
|
+
defaultedQueries.forEach((queryOptions) => {
|
|
62
|
+
(0, import_suspense.ensureSuspenseTimers)(queryOptions);
|
|
63
|
+
const query = client.getQueryCache().get(queryOptions.queryHash);
|
|
64
|
+
(0, import_errorBoundaryUtils.ensurePreventErrorBoundaryRetry)(queryOptions, errorResetBoundary, query);
|
|
65
|
+
});
|
|
66
|
+
(0, import_errorBoundaryUtils.useClearResetErrorBoundary)(errorResetBoundary);
|
|
67
|
+
const [observer] = React.useState(
|
|
68
|
+
() => new import_query_core.QueriesObserver(
|
|
69
|
+
client,
|
|
70
|
+
defaultedQueries,
|
|
71
|
+
options
|
|
72
|
+
)
|
|
73
|
+
);
|
|
74
|
+
const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(
|
|
75
|
+
defaultedQueries,
|
|
76
|
+
options.combine
|
|
77
|
+
);
|
|
78
|
+
const shouldSubscribe = !isRestoring && options.subscribed !== false;
|
|
79
|
+
React.useSyncExternalStore(
|
|
80
|
+
React.useCallback(
|
|
81
|
+
(onStoreChange) => shouldSubscribe ? observer.subscribe(import_query_core.notifyManager.batchCalls(onStoreChange)) : import_query_core.noop,
|
|
82
|
+
[observer, shouldSubscribe]
|
|
83
|
+
),
|
|
84
|
+
() => observer.getCurrentResult(),
|
|
85
|
+
() => observer.getCurrentResult()
|
|
86
|
+
);
|
|
87
|
+
React.useEffect(() => {
|
|
88
|
+
observer.setQueries(
|
|
89
|
+
defaultedQueries,
|
|
90
|
+
options
|
|
91
|
+
);
|
|
92
|
+
}, [defaultedQueries, options, observer]);
|
|
93
|
+
const shouldAtLeastOneSuspend = optimisticResult.some(
|
|
94
|
+
(result, index) => (0, import_suspense.shouldSuspend)(defaultedQueries[index], result)
|
|
95
|
+
);
|
|
96
|
+
const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {
|
|
97
|
+
const opts = defaultedQueries[index];
|
|
98
|
+
if (opts && (0, import_suspense.shouldSuspend)(opts, result)) {
|
|
99
|
+
const queryObserver = new import_query_core.QueryObserver(client, opts);
|
|
100
|
+
return (0, import_suspense.fetchOptimistic)(opts, queryObserver, errorResetBoundary);
|
|
101
|
+
}
|
|
102
|
+
return [];
|
|
103
|
+
}) : [];
|
|
104
|
+
if (suspensePromises.length > 0) {
|
|
105
|
+
throw Promise.all(suspensePromises);
|
|
106
|
+
}
|
|
107
|
+
const firstSingleResultWhichShouldThrow = optimisticResult.find(
|
|
108
|
+
(result, index) => {
|
|
109
|
+
const query = defaultedQueries[index];
|
|
110
|
+
return query && (0, import_errorBoundaryUtils.getHasError)({
|
|
111
|
+
result,
|
|
112
|
+
errorResetBoundary,
|
|
113
|
+
throwOnError: query.throwOnError,
|
|
114
|
+
query: client.getQueryCache().get(query.queryHash),
|
|
115
|
+
suspense: query.suspense
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
);
|
|
119
|
+
if (firstSingleResultWhichShouldThrow == null ? void 0 : firstSingleResultWhichShouldThrow.error) {
|
|
120
|
+
throw firstSingleResultWhichShouldThrow.error;
|
|
121
|
+
}
|
|
122
|
+
return getCombinedResult(trackResult());
|
|
123
|
+
}
|
|
124
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
125
|
+
0 && (module.exports = {
|
|
126
|
+
useQueries
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=useQueries.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/useQueries.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport { useIsRestoring } from './IsRestoringProvider'\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary'\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary,\n} from './errorBoundaryUtils'\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n} from './suspense'\nimport type {\n DefinedUseQueryResult,\n UseQueryOptions,\n UseQueryResult,\n} from './types'\nimport type {\n DefaultError,\n OmitKeyof,\n QueriesObserverOptions,\n QueriesPlaceholderDataFunction,\n QueryClient,\n QueryFunction,\n QueryKey,\n QueryObserverOptions,\n ThrowOnError,\n} from '@tanstack/query-core'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function always gets undefined passed\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = OmitKeyof<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData' | 'subscribed'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\n// Widen the type of the symbol to enable type inference even if skipToken is not immutable.\ntype SkipTokenForUseQueries = symbol\n\ntype GetUseQueryOptionsForUseQueries<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, infer TQueryKey>\n | SkipTokenForUseQueries\n select?: (data: any) => infer TData\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? UseQueryOptionsForUseQueries<\n TQueryFnData,\n unknown extends TError ? DefaultError : TError,\n unknown extends TData ? TQueryFnData : TData,\n TQueryKey\n >\n : // Fallback\n UseQueryOptionsForUseQueries\n\n// A defined initialData setting should return a DefinedUseQueryResult rather than UseQueryResult\ntype GetDefinedOrUndefinedQueryResult<T, TData, TError = unknown> = T extends {\n initialData?: infer TInitialData\n}\n ? unknown extends TInitialData\n ? UseQueryResult<TData, TError>\n : TInitialData extends TData\n ? DefinedUseQueryResult<TData, TError>\n : TInitialData extends () => infer TInitialDataResult\n ? unknown extends TInitialDataResult\n ? UseQueryResult<TData, TError>\n : TInitialDataResult extends TData\n ? DefinedUseQueryResult<TData, TError>\n : UseQueryResult<TData, TError>\n : UseQueryResult<TData, TError>\n : UseQueryResult<TData, TError>\n\ntype GetUseQueryResult<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, any>\n | SkipTokenForUseQueries\n select?: (data: any) => infer TData\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? GetDefinedOrUndefinedQueryResult<\n T,\n unknown extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >\n : // Fallback\n UseQueryResult\n\n/**\n * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type QueriesOptions<\n T extends Array<any>,\n TResults extends Array<any> = [],\n TDepth extends ReadonlyArray<number> = [],\n> = TDepth['length'] extends MAXIMUM_DEPTH\n ? Array<UseQueryOptionsForUseQueries>\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...TResults, GetUseQueryOptionsForUseQueries<Head>]\n : T extends [infer Head, ...infer Tails]\n ? QueriesOptions<\n [...Tails],\n [...TResults, GetUseQueryOptionsForUseQueries<Head>],\n [...TDepth, 1]\n >\n : ReadonlyArray<unknown> extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends Array<\n UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >\n >\n ? Array<\n UseQueryOptionsForUseQueries<\n TQueryFnData,\n TError,\n TData,\n TQueryKey\n >\n >\n : // Fallback\n Array<UseQueryOptionsForUseQueries>\n\n/**\n * QueriesResults reducer recursively maps type param to results\n */\nexport type QueriesResults<\n T extends Array<any>,\n TResults extends Array<any> = [],\n TDepth extends ReadonlyArray<number> = [],\n> = TDepth['length'] extends MAXIMUM_DEPTH\n ? Array<UseQueryResult>\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...TResults, GetUseQueryResult<Head>]\n : T extends [infer Head, ...infer Tails]\n ? QueriesResults<\n [...Tails],\n [...TResults, GetUseQueryResult<Head>],\n [...TDepth, 1]\n >\n : { [K in keyof T]: GetUseQueryResult<T[K]> }\n\nexport function useQueries<\n T extends Array<any>,\n TCombinedResult = QueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries:\n | readonly [...QueriesOptions<T>]\n | readonly [...{ [K in keyof T]: GetUseQueryOptionsForUseQueries<T[K]> }]\n combine?: (result: QueriesResults<T>) => TCombinedResult\n subscribed?: boolean\n },\n queryClient?: QueryClient,\n): TCombinedResult {\n const client = useQueryClient(queryClient)\n const isRestoring = useIsRestoring()\n const errorResetBoundary = useQueryErrorResetBoundary()\n\n const defaultedQueries = React.useMemo(\n () =>\n queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts as QueryObserverOptions,\n )\n\n // Make sure the results are already in fetching state before subscribing or updating options\n defaultedOptions._optimisticResults = isRestoring\n ? 'isRestoring'\n : 'optimistic'\n\n return defaultedOptions\n }),\n [queries, client, isRestoring],\n )\n\n defaultedQueries.forEach((queryOptions) => {\n ensureSuspenseTimers(queryOptions)\n const query = client.getQueryCache().get(queryOptions.queryHash)\n ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query)\n })\n\n useClearResetErrorBoundary(errorResetBoundary)\n\n const [observer] = React.useState(\n () =>\n new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries,\n options as QueriesObserverOptions<TCombinedResult>,\n ),\n )\n\n // note: this must be called before useSyncExternalStore\n const [optimisticResult, getCombinedResult, trackResult] =\n observer.getOptimisticResult(\n defaultedQueries,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n\n const shouldSubscribe = !isRestoring && options.subscribed !== false\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n shouldSubscribe\n ? observer.subscribe(notifyManager.batchCalls(onStoreChange))\n : noop,\n [observer, shouldSubscribe],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n }, [defaultedQueries, options, observer])\n\n const shouldAtLeastOneSuspend = optimisticResult.some((result, index) =>\n shouldSuspend(defaultedQueries[index], result),\n )\n\n const suspensePromises = shouldAtLeastOneSuspend\n ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index]\n\n if (opts && shouldSuspend(opts, result)) {\n const queryObserver = new QueryObserver(client, opts)\n return fetchOptimistic(opts, queryObserver, errorResetBoundary)\n }\n return []\n })\n : []\n\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises)\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index]\n return (\n query &&\n getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense,\n })\n )\n },\n )\n\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error\n }\n\n return getCombinedResult(trackResult())\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,YAAuB;AAEvB,wBAKO;AACP,iCAA+B;AAC/B,iCAA+B;AAC/B,qCAA2C;AAC3C,gCAIO;AACP,sBAIO;AAyLA,SAAS,WAId;AAAA,EACE;AAAA,EACA,GAAG;AACL,GAOA,aACiB;AACjB,QAAM,aAAS,2CAAe,WAAW;AACzC,QAAM,kBAAc,2CAAe;AACnC,QAAM,yBAAqB,2DAA2B;AAEtD,QAAM,mBAAyB;AAAA,IAC7B,MACE,QAAQ,IAAI,CAAC,SAAS;AACpB,YAAM,mBAAmB,OAAO;AAAA,QAC9B;AAAA,MACF;AAGA,uBAAiB,qBAAqB,cAClC,gBACA;AAEJ,aAAO;AAAA,IACT,CAAC;AAAA,IACH,CAAC,SAAS,QAAQ,WAAW;AAAA,EAC/B;AAEA,mBAAiB,QAAQ,CAAC,iBAAiB;AACzC,8CAAqB,YAAY;AACjC,UAAM,QAAQ,OAAO,cAAc,EAAE,IAAI,aAAa,SAAS;AAC/D,mEAAgC,cAAc,oBAAoB,KAAK;AAAA,EACzE,CAAC;AAED,4DAA2B,kBAAkB;AAE7C,QAAM,CAAC,QAAQ,IAAU;AAAA,IACvB,MACE,IAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACJ;AAGA,QAAM,CAAC,kBAAkB,mBAAmB,WAAW,IACrD,SAAS;AAAA,IACP;AAAA,IACC,QAAoD;AAAA,EACvD;AAEF,QAAM,kBAAkB,CAAC,eAAe,QAAQ,eAAe;AAC/D,EAAM;AAAA,IACE;AAAA,MACJ,CAAC,kBACC,kBACI,SAAS,UAAU,gCAAc,WAAW,aAAa,CAAC,IAC1D;AAAA,MACN,CAAC,UAAU,eAAe;AAAA,IAC5B;AAAA,IACA,MAAM,SAAS,iBAAiB;AAAA,IAChC,MAAM,SAAS,iBAAiB;AAAA,EAClC;AAEA,EAAM,gBAAU,MAAM;AACpB,aAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,kBAAkB,SAAS,QAAQ,CAAC;AAExC,QAAM,0BAA0B,iBAAiB;AAAA,IAAK,CAAC,QAAQ,cAC7D,+BAAc,iBAAiB,KAAK,GAAG,MAAM;AAAA,EAC/C;AAEA,QAAM,mBAAmB,0BACrB,iBAAiB,QAAQ,CAAC,QAAQ,UAAU;AAC1C,UAAM,OAAO,iBAAiB,KAAK;AAEnC,QAAI,YAAQ,+BAAc,MAAM,MAAM,GAAG;AACvC,YAAM,gBAAgB,IAAI,gCAAc,QAAQ,IAAI;AACpD,iBAAO,iCAAgB,MAAM,eAAe,kBAAkB;AAAA,IAChE;AACA,WAAO,CAAC;AAAA,EACV,CAAC,IACD,CAAC;AAEL,MAAI,iBAAiB,SAAS,GAAG;AAC/B,UAAM,QAAQ,IAAI,gBAAgB;AAAA,EACpC;AACA,QAAM,oCAAoC,iBAAiB;AAAA,IACzD,CAAC,QAAQ,UAAU;AACjB,YAAM,QAAQ,iBAAiB,KAAK;AACpC,aACE,aACA,uCAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA,cAAc,MAAM;AAAA,QACpB,OAAO,OAAO,cAAc,EAAE,IAAI,MAAM,SAAS;AAAA,QACjD,UAAU,MAAM;AAAA,MAClB,CAAC;AAAA,IAEL;AAAA,EACF;AAEA,MAAI,uFAAmC,OAAO;AAC5C,UAAM,kCAAkC;AAAA,EAC1C;AAEA,SAAO,kBAAkB,YAAY,CAAC;AACxC;","names":[]}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/useQueries.ts
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import {
|
|
6
|
+
QueriesObserver,
|
|
7
|
+
QueryObserver,
|
|
8
|
+
noop,
|
|
9
|
+
notifyManager
|
|
10
|
+
} from "@tanstack/query-core";
|
|
11
|
+
import { useQueryClient } from "./QueryClientProvider.js";
|
|
12
|
+
import { useIsRestoring } from "./IsRestoringProvider.js";
|
|
13
|
+
import { useQueryErrorResetBoundary } from "./QueryErrorResetBoundary.js";
|
|
14
|
+
import {
|
|
15
|
+
ensurePreventErrorBoundaryRetry,
|
|
16
|
+
getHasError,
|
|
17
|
+
useClearResetErrorBoundary
|
|
18
|
+
} from "./errorBoundaryUtils.js";
|
|
19
|
+
import {
|
|
20
|
+
ensureSuspenseTimers,
|
|
21
|
+
fetchOptimistic,
|
|
22
|
+
shouldSuspend
|
|
23
|
+
} from "./suspense.js";
|
|
24
|
+
function useQueries({
|
|
25
|
+
queries,
|
|
26
|
+
...options
|
|
27
|
+
}, queryClient) {
|
|
28
|
+
const client = useQueryClient(queryClient);
|
|
29
|
+
const isRestoring = useIsRestoring();
|
|
30
|
+
const errorResetBoundary = useQueryErrorResetBoundary();
|
|
31
|
+
const defaultedQueries = React.useMemo(
|
|
32
|
+
() => queries.map((opts) => {
|
|
33
|
+
const defaultedOptions = client.defaultQueryOptions(
|
|
34
|
+
opts
|
|
35
|
+
);
|
|
36
|
+
defaultedOptions._optimisticResults = isRestoring ? "isRestoring" : "optimistic";
|
|
37
|
+
return defaultedOptions;
|
|
38
|
+
}),
|
|
39
|
+
[queries, client, isRestoring]
|
|
40
|
+
);
|
|
41
|
+
defaultedQueries.forEach((queryOptions) => {
|
|
42
|
+
ensureSuspenseTimers(queryOptions);
|
|
43
|
+
const query = client.getQueryCache().get(queryOptions.queryHash);
|
|
44
|
+
ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);
|
|
45
|
+
});
|
|
46
|
+
useClearResetErrorBoundary(errorResetBoundary);
|
|
47
|
+
const [observer] = React.useState(
|
|
48
|
+
() => new QueriesObserver(
|
|
49
|
+
client,
|
|
50
|
+
defaultedQueries,
|
|
51
|
+
options
|
|
52
|
+
)
|
|
53
|
+
);
|
|
54
|
+
const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(
|
|
55
|
+
defaultedQueries,
|
|
56
|
+
options.combine
|
|
57
|
+
);
|
|
58
|
+
const shouldSubscribe = !isRestoring && options.subscribed !== false;
|
|
59
|
+
React.useSyncExternalStore(
|
|
60
|
+
React.useCallback(
|
|
61
|
+
(onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,
|
|
62
|
+
[observer, shouldSubscribe]
|
|
63
|
+
),
|
|
64
|
+
() => observer.getCurrentResult(),
|
|
65
|
+
() => observer.getCurrentResult()
|
|
66
|
+
);
|
|
67
|
+
React.useEffect(() => {
|
|
68
|
+
observer.setQueries(
|
|
69
|
+
defaultedQueries,
|
|
70
|
+
options
|
|
71
|
+
);
|
|
72
|
+
}, [defaultedQueries, options, observer]);
|
|
73
|
+
const shouldAtLeastOneSuspend = optimisticResult.some(
|
|
74
|
+
(result, index) => shouldSuspend(defaultedQueries[index], result)
|
|
75
|
+
);
|
|
76
|
+
const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {
|
|
77
|
+
const opts = defaultedQueries[index];
|
|
78
|
+
if (opts && shouldSuspend(opts, result)) {
|
|
79
|
+
const queryObserver = new QueryObserver(client, opts);
|
|
80
|
+
return fetchOptimistic(opts, queryObserver, errorResetBoundary);
|
|
81
|
+
}
|
|
82
|
+
return [];
|
|
83
|
+
}) : [];
|
|
84
|
+
if (suspensePromises.length > 0) {
|
|
85
|
+
throw Promise.all(suspensePromises);
|
|
86
|
+
}
|
|
87
|
+
const firstSingleResultWhichShouldThrow = optimisticResult.find(
|
|
88
|
+
(result, index) => {
|
|
89
|
+
const query = defaultedQueries[index];
|
|
90
|
+
return query && getHasError({
|
|
91
|
+
result,
|
|
92
|
+
errorResetBoundary,
|
|
93
|
+
throwOnError: query.throwOnError,
|
|
94
|
+
query: client.getQueryCache().get(query.queryHash),
|
|
95
|
+
suspense: query.suspense
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
if (firstSingleResultWhichShouldThrow == null ? void 0 : firstSingleResultWhichShouldThrow.error) {
|
|
100
|
+
throw firstSingleResultWhichShouldThrow.error;
|
|
101
|
+
}
|
|
102
|
+
return getCombinedResult(trackResult());
|
|
103
|
+
}
|
|
104
|
+
export {
|
|
105
|
+
useQueries
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=useQueries.js.map
|