@tanstack/vue-query 5.74.5 → 5.74.7
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/legacy/devtools/devtools.d.cts +1 -1
- package/build/legacy/devtools/devtools.d.ts +1 -1
- package/build/legacy/index.d.cts +1 -1
- package/build/legacy/index.d.ts +1 -1
- package/build/legacy/infiniteQueryOptions.d.cts +1 -1
- package/build/legacy/infiniteQueryOptions.d.ts +1 -1
- package/build/legacy/{queryClient-CB08OXdW.d.cts → queryClient-BAAUSDNa.d.cts} +2 -2
- package/build/legacy/{queryClient-Dyec86nu.d.ts → queryClient-DlZcK5cH.d.ts} +2 -2
- package/build/legacy/queryClient.d.cts +1 -1
- package/build/legacy/queryClient.d.ts +1 -1
- package/build/legacy/queryOptions.d.cts +1 -1
- package/build/legacy/queryOptions.d.ts +1 -1
- package/build/legacy/useBaseQuery.cjs +2 -5
- package/build/legacy/useBaseQuery.cjs.map +1 -1
- package/build/legacy/useBaseQuery.d.cts +1 -1
- package/build/legacy/useBaseQuery.d.ts +1 -1
- package/build/legacy/useBaseQuery.js +3 -5
- package/build/legacy/useBaseQuery.js.map +1 -1
- package/build/legacy/useInfiniteQuery.d.cts +1 -1
- package/build/legacy/useInfiniteQuery.d.ts +1 -1
- package/build/legacy/useIsFetching.d.cts +1 -1
- package/build/legacy/useIsFetching.d.ts +1 -1
- package/build/legacy/useMutation.cjs +2 -2
- package/build/legacy/useMutation.cjs.map +1 -1
- package/build/legacy/useMutation.d.cts +1 -1
- package/build/legacy/useMutation.d.ts +1 -1
- package/build/legacy/useMutation.js +3 -2
- package/build/legacy/useMutation.js.map +1 -1
- package/build/legacy/useMutationState.d.cts +1 -1
- package/build/legacy/useMutationState.d.ts +1 -1
- package/build/legacy/useQueries.cjs +1 -1
- package/build/legacy/useQueries.cjs.map +1 -1
- package/build/legacy/useQueries.d.cts +1 -1
- package/build/legacy/useQueries.d.ts +1 -1
- package/build/legacy/useQueries.js +1 -1
- package/build/legacy/useQueries.js.map +1 -1
- package/build/legacy/useQuery.cjs.map +1 -1
- package/build/legacy/useQuery.d.cts +1 -1
- package/build/legacy/useQuery.d.ts +1 -1
- package/build/legacy/useQuery.js.map +1 -1
- package/build/legacy/useQueryClient.d.cts +1 -1
- package/build/legacy/useQueryClient.d.ts +1 -1
- package/build/legacy/vueQueryPlugin.d.cts +1 -1
- package/build/legacy/vueQueryPlugin.d.ts +1 -1
- package/build/modern/devtools/devtools.d.cts +1 -1
- package/build/modern/devtools/devtools.d.ts +1 -1
- package/build/modern/index.d.cts +1 -1
- package/build/modern/index.d.ts +1 -1
- package/build/modern/infiniteQueryOptions.d.cts +1 -1
- package/build/modern/infiniteQueryOptions.d.ts +1 -1
- package/build/modern/{queryClient-CB08OXdW.d.cts → queryClient-BAAUSDNa.d.cts} +2 -2
- package/build/modern/{queryClient-Dyec86nu.d.ts → queryClient-DlZcK5cH.d.ts} +2 -2
- package/build/modern/queryClient.d.cts +1 -1
- package/build/modern/queryClient.d.ts +1 -1
- package/build/modern/queryOptions.d.cts +1 -1
- package/build/modern/queryOptions.d.ts +1 -1
- package/build/modern/useBaseQuery.cjs +2 -5
- package/build/modern/useBaseQuery.cjs.map +1 -1
- package/build/modern/useBaseQuery.d.cts +1 -1
- package/build/modern/useBaseQuery.d.ts +1 -1
- package/build/modern/useBaseQuery.js +3 -5
- package/build/modern/useBaseQuery.js.map +1 -1
- package/build/modern/useInfiniteQuery.d.cts +1 -1
- package/build/modern/useInfiniteQuery.d.ts +1 -1
- package/build/modern/useIsFetching.d.cts +1 -1
- package/build/modern/useIsFetching.d.ts +1 -1
- package/build/modern/useMutation.cjs +2 -2
- package/build/modern/useMutation.cjs.map +1 -1
- package/build/modern/useMutation.d.cts +1 -1
- package/build/modern/useMutation.d.ts +1 -1
- package/build/modern/useMutation.js +3 -2
- package/build/modern/useMutation.js.map +1 -1
- package/build/modern/useMutationState.d.cts +1 -1
- package/build/modern/useMutationState.d.ts +1 -1
- package/build/modern/useQueries.cjs +1 -1
- package/build/modern/useQueries.cjs.map +1 -1
- package/build/modern/useQueries.d.cts +1 -1
- package/build/modern/useQueries.d.ts +1 -1
- package/build/modern/useQueries.js +1 -1
- package/build/modern/useQueries.js.map +1 -1
- package/build/modern/useQuery.cjs.map +1 -1
- package/build/modern/useQuery.d.cts +1 -1
- package/build/modern/useQuery.d.ts +1 -1
- package/build/modern/useQuery.js.map +1 -1
- package/build/modern/useQueryClient.d.cts +1 -1
- package/build/modern/useQueryClient.d.ts +1 -1
- package/build/modern/vueQueryPlugin.d.cts +1 -1
- package/build/modern/vueQueryPlugin.d.ts +1 -1
- package/package.json +3 -2
- package/src/useBaseQuery.ts +9 -8
- package/src/useMutation.ts +7 -7
- package/src/useQueries.ts +3 -5
- package/src/useQuery.ts +5 -1
package/build/legacy/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from '@tanstack/query-core';
|
|
2
2
|
export { useQueryClient } from './useQueryClient.cjs';
|
|
3
3
|
export { VueQueryPlugin, VueQueryPluginOptions } from './vueQueryPlugin.cjs';
|
|
4
|
-
export { D as DefinedInitialDataInfiniteOptions, f as DefinedInitialQueryOptions, Q as QueryClient, U as UndefinedInitialDataInfiniteOptions, e as UndefinedInitialQueryOptions, g as UseInfiniteQueryOptions, h as UseInfiniteQueryReturnType, d as UseQueryDefinedReturnType, b as UseQueryOptions, c as UseQueryReturnType, i as infiniteQueryOptions, a as useInfiniteQuery, u as useQuery } from './queryClient-
|
|
4
|
+
export { D as DefinedInitialDataInfiniteOptions, f as DefinedInitialQueryOptions, Q as QueryClient, U as UndefinedInitialDataInfiniteOptions, e as UndefinedInitialQueryOptions, g as UseInfiniteQueryOptions, h as UseInfiniteQueryReturnType, d as UseQueryDefinedReturnType, b as UseQueryOptions, c as UseQueryReturnType, i as infiniteQueryOptions, a as useInfiniteQuery, u as useQuery } from './queryClient-BAAUSDNa.cjs';
|
|
5
5
|
export { QueryCache } from './queryCache.cjs';
|
|
6
6
|
export { queryOptions } from './queryOptions.cjs';
|
|
7
7
|
export { MutationCache } from './mutationCache.cjs';
|
package/build/legacy/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from '@tanstack/query-core';
|
|
2
2
|
export { useQueryClient } from './useQueryClient.js';
|
|
3
3
|
export { VueQueryPlugin, VueQueryPluginOptions } from './vueQueryPlugin.js';
|
|
4
|
-
export { D as DefinedInitialDataInfiniteOptions, f as DefinedInitialQueryOptions, Q as QueryClient, U as UndefinedInitialDataInfiniteOptions, e as UndefinedInitialQueryOptions, g as UseInfiniteQueryOptions, h as UseInfiniteQueryReturnType, d as UseQueryDefinedReturnType, b as UseQueryOptions, c as UseQueryReturnType, i as infiniteQueryOptions, a as useInfiniteQuery, u as useQuery } from './queryClient-
|
|
4
|
+
export { D as DefinedInitialDataInfiniteOptions, f as DefinedInitialQueryOptions, Q as QueryClient, U as UndefinedInitialDataInfiniteOptions, e as UndefinedInitialQueryOptions, g as UseInfiniteQueryOptions, h as UseInfiniteQueryReturnType, d as UseQueryDefinedReturnType, b as UseQueryOptions, c as UseQueryReturnType, i as infiniteQueryOptions, a as useInfiniteQuery, u as useQuery } from './queryClient-DlZcK5cH.js';
|
|
5
5
|
export { QueryCache } from './queryCache.js';
|
|
6
6
|
export { queryOptions } from './queryOptions.js';
|
|
7
7
|
export { MutationCache } from './mutationCache.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import '@tanstack/query-core';
|
|
2
|
-
export { D as DefinedInitialDataInfiniteOptions, U as UndefinedInitialDataInfiniteOptions, i as infiniteQueryOptions } from './queryClient-
|
|
2
|
+
export { D as DefinedInitialDataInfiniteOptions, U as UndefinedInitialDataInfiniteOptions, i as infiniteQueryOptions } from './queryClient-BAAUSDNa.cjs';
|
|
3
3
|
import 'vue-demi';
|
|
4
4
|
import './types.cjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import '@tanstack/query-core';
|
|
2
|
-
export { D as DefinedInitialDataInfiniteOptions, U as UndefinedInitialDataInfiniteOptions, i as infiniteQueryOptions } from './queryClient-
|
|
2
|
+
export { D as DefinedInitialDataInfiniteOptions, U as UndefinedInitialDataInfiniteOptions, i as infiniteQueryOptions } from './queryClient-DlZcK5cH.js';
|
|
3
3
|
import 'vue-demi';
|
|
4
4
|
import './types.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DefaultError, InfiniteData, QueryKey, DataTag, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, QueryObserverResult, QueryObserver, QueryObserverOptions, DefinedQueryObserverResult, QueryClient as QueryClient$1, QueryFilters, MutationFilters, InferDataFromTag, EnsureQueryDataOptions, Updater, NoInfer, SetDataOptions, QueryState, InferErrorFromTag, ResetOptions, CancelOptions, InvalidateQueryFilters, InvalidateOptions, RefetchQueryFilters, RefetchOptions, FetchQueryOptions, FetchInfiniteQueryOptions, DefaultOptions, OmitKeyof, MutationKey, MutationObserverOptions } from '@tanstack/query-core';
|
|
1
|
+
import { DefaultError, InfiniteData, QueryKey, DataTag, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, QueryObserverResult, QueryObserver, QueryObserverOptions, InitialDataFunction, DefinedQueryObserverResult, QueryClient as QueryClient$1, QueryFilters, MutationFilters, InferDataFromTag, EnsureQueryDataOptions, Updater, NoInfer, SetDataOptions, QueryState, InferErrorFromTag, ResetOptions, CancelOptions, InvalidateQueryFilters, InvalidateOptions, RefetchQueryFilters, RefetchOptions, FetchQueryOptions, FetchInfiniteQueryOptions, DefaultOptions, OmitKeyof, MutationKey, MutationObserverOptions } from '@tanstack/query-core';
|
|
2
2
|
import { Ref } from 'vue-demi';
|
|
3
3
|
import { MaybeRef, MaybeRefOrGetter, DeepUnwrapRef, MaybeRefDeep, QueryClientConfig, NoUnknown } from './types.cjs';
|
|
4
4
|
|
|
@@ -44,7 +44,7 @@ type UseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQue
|
|
|
44
44
|
shallow?: boolean;
|
|
45
45
|
}>;
|
|
46
46
|
type UndefinedInitialQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> & {
|
|
47
|
-
initialData?: undefined
|
|
47
|
+
initialData?: undefined | InitialDataFunction<NonUndefinedGuard<TQueryFnData>> | NonUndefinedGuard<TQueryFnData>;
|
|
48
48
|
};
|
|
49
49
|
type DefinedInitialQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> & {
|
|
50
50
|
initialData: NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DefaultError, InfiniteData, QueryKey, DataTag, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, QueryObserverResult, QueryObserver, QueryObserverOptions, DefinedQueryObserverResult, QueryClient as QueryClient$1, QueryFilters, MutationFilters, InferDataFromTag, EnsureQueryDataOptions, Updater, NoInfer, SetDataOptions, QueryState, InferErrorFromTag, ResetOptions, CancelOptions, InvalidateQueryFilters, InvalidateOptions, RefetchQueryFilters, RefetchOptions, FetchQueryOptions, FetchInfiniteQueryOptions, DefaultOptions, OmitKeyof, MutationKey, MutationObserverOptions } from '@tanstack/query-core';
|
|
1
|
+
import { DefaultError, InfiniteData, QueryKey, DataTag, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, QueryObserverResult, QueryObserver, QueryObserverOptions, InitialDataFunction, DefinedQueryObserverResult, QueryClient as QueryClient$1, QueryFilters, MutationFilters, InferDataFromTag, EnsureQueryDataOptions, Updater, NoInfer, SetDataOptions, QueryState, InferErrorFromTag, ResetOptions, CancelOptions, InvalidateQueryFilters, InvalidateOptions, RefetchQueryFilters, RefetchOptions, FetchQueryOptions, FetchInfiniteQueryOptions, DefaultOptions, OmitKeyof, MutationKey, MutationObserverOptions } from '@tanstack/query-core';
|
|
2
2
|
import { Ref } from 'vue-demi';
|
|
3
3
|
import { MaybeRef, MaybeRefOrGetter, DeepUnwrapRef, MaybeRefDeep, QueryClientConfig, NoUnknown } from './types.js';
|
|
4
4
|
|
|
@@ -44,7 +44,7 @@ type UseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQue
|
|
|
44
44
|
shallow?: boolean;
|
|
45
45
|
}>;
|
|
46
46
|
type UndefinedInitialQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> & {
|
|
47
|
-
initialData?: undefined
|
|
47
|
+
initialData?: undefined | InitialDataFunction<NonUndefinedGuard<TQueryFnData>> | NonUndefinedGuard<TQueryFnData>;
|
|
48
48
|
};
|
|
49
49
|
type DefinedInitialQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> & {
|
|
50
50
|
initialData: NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DefaultError, QueryKey, DataTag } from '@tanstack/query-core';
|
|
2
|
-
import { e as UndefinedInitialQueryOptions, f as DefinedInitialQueryOptions } from './queryClient-
|
|
2
|
+
import { e as UndefinedInitialQueryOptions, f as DefinedInitialQueryOptions } from './queryClient-BAAUSDNa.cjs';
|
|
3
3
|
import 'vue-demi';
|
|
4
4
|
import './types.cjs';
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DefaultError, QueryKey, DataTag } from '@tanstack/query-core';
|
|
2
|
-
import { e as UndefinedInitialQueryOptions, f as DefinedInitialQueryOptions } from './queryClient-
|
|
2
|
+
import { e as UndefinedInitialQueryOptions, f as DefinedInitialQueryOptions } from './queryClient-DlZcK5cH.js';
|
|
3
3
|
import 'vue-demi';
|
|
4
4
|
import './types.js';
|
|
5
5
|
|
|
@@ -45,7 +45,7 @@ function useBaseQuery(Observer, options, queryClient) {
|
|
|
45
45
|
return defaulted;
|
|
46
46
|
});
|
|
47
47
|
const observer = new Observer(client, defaultedOptions.value);
|
|
48
|
-
const state = (0, import_vue_demi.shallowReactive)(observer.getCurrentResult());
|
|
48
|
+
const state = defaultedOptions.value.shallow ? (0, import_vue_demi.shallowReactive)(observer.getCurrentResult()) : (0, import_vue_demi.reactive)(observer.getCurrentResult());
|
|
49
49
|
let unsubscribe = () => {
|
|
50
50
|
};
|
|
51
51
|
(0, import_vue_demi.watch)(
|
|
@@ -117,10 +117,7 @@ function useBaseQuery(Observer, options, queryClient) {
|
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
);
|
|
120
|
-
const readonlyState =
|
|
121
|
-
// @ts-expect-error
|
|
122
|
-
defaultedOptions.value.shallow ? (0, import_vue_demi.shallowReadonly)(state) : (0, import_vue_demi.readonly)(state)
|
|
123
|
-
);
|
|
120
|
+
const readonlyState = defaultedOptions.value.shallow ? (0, import_vue_demi.shallowReadonly)(state) : (0, import_vue_demi.readonly)(state);
|
|
124
121
|
const object = (0, import_vue_demi.toRefs)(readonlyState);
|
|
125
122
|
for (const key in state) {
|
|
126
123
|
if (typeof state[key] === "function") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n readonly,\n shallowReactive,\n shallowReadonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type {\n DefaultedQueryObserverOptions,\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n TResult = QueryObserverResult<TData, TError>,\n> = {\n [K in keyof TResult]: K extends\n | 'fetchNextPage'\n | 'fetchPreviousPage'\n | 'refetch'\n ? TResult[K]\n : Ref<Readonly<TResult>[K]>\n} & {\n suspense: () => Promise<TResult>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composable like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const clonedOptions = cloneDeepUnref(options as any)\n\n if (typeof clonedOptions.enabled === 'function') {\n clonedOptions.enabled = clonedOptions.enabled()\n }\n\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(clonedOptions)\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = shallowReactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n const updater = () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n }\n\n watch(defaultedOptions, updater)\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n // fix #5910\n const refetch = (...args: Parameters<(typeof state)['refetch']>) => {\n updater()\n return state.refetch(...args)\n }\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>(\n (resolve, reject) => {\n let stopWatch = () => {\n // noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n // fix #6133\n observer.setOptions(defaultedOptions.value)\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n observer\n .fetchOptimistic(defaultedOptions.value)\n .then(resolve, (error: TError) => {\n if (\n shouldThrowError(defaultedOptions.value.throwOnError, [\n error,\n observer.getCurrentQuery(),\n ])\n ) {\n reject(error)\n } else {\n resolve(observer.getCurrentResult())\n }\n })\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run)\n },\n )\n }\n\n // Handle error boundary\n watch(\n () => state.error,\n (error) => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(defaultedOptions.value.throwOnError, [\n error as TError,\n observer.getCurrentQuery(),\n ])\n ) {\n throw error\n }\n },\n )\n\n
|
|
1
|
+
{"version":3,"sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n reactive,\n readonly,\n shallowReactive,\n shallowReadonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type {\n DefaultedQueryObserverOptions,\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n TResult = QueryObserverResult<TData, TError>,\n> = {\n [K in keyof TResult]: K extends\n | 'fetchNextPage'\n | 'fetchPreviousPage'\n | 'refetch'\n ? TResult[K]\n : Ref<Readonly<TResult>[K]>\n} & {\n suspense: () => Promise<TResult>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composable like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const clonedOptions = cloneDeepUnref(options as any)\n\n if (typeof clonedOptions.enabled === 'function') {\n clonedOptions.enabled = clonedOptions.enabled()\n }\n\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(clonedOptions)\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n // @ts-expect-error\n const state = defaultedOptions.value.shallow\n ? shallowReactive(observer.getCurrentResult())\n : reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n const updater = () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n }\n\n watch(defaultedOptions, updater)\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n // fix #5910\n const refetch = (...args: Parameters<(typeof state)['refetch']>) => {\n updater()\n return state.refetch(...args)\n }\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>(\n (resolve, reject) => {\n let stopWatch = () => {\n // noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n // fix #6133\n observer.setOptions(defaultedOptions.value)\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n observer\n .fetchOptimistic(defaultedOptions.value)\n .then(resolve, (error: TError) => {\n if (\n shouldThrowError(defaultedOptions.value.throwOnError, [\n error,\n observer.getCurrentQuery(),\n ])\n ) {\n reject(error)\n } else {\n resolve(observer.getCurrentResult())\n }\n })\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run)\n },\n )\n }\n\n // Handle error boundary\n watch(\n () => state.error,\n (error) => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(defaultedOptions.value.throwOnError, [\n error as TError,\n observer.getCurrentQuery(),\n ])\n ) {\n throw error\n }\n },\n )\n\n // @ts-expect-error\n const readonlyState = defaultedOptions.value.shallow\n ? shallowReadonly(state)\n : readonly(state)\n\n const object: any = toRefs(readonlyState)\n for (const key in state) {\n if (typeof state[key as keyof typeof state] === 'function') {\n object[key] = state[key as keyof typeof state]\n }\n }\n\n object.suspense = suspense\n object.refetch = refetch\n\n return object as UseBaseQueryReturnType<TData, TError>\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
computed,
|
|
4
4
|
getCurrentScope,
|
|
5
5
|
onScopeDispose,
|
|
6
|
+
reactive,
|
|
6
7
|
readonly,
|
|
7
8
|
shallowReactive,
|
|
8
9
|
shallowReadonly,
|
|
@@ -30,7 +31,7 @@ function useBaseQuery(Observer, options, queryClient) {
|
|
|
30
31
|
return defaulted;
|
|
31
32
|
});
|
|
32
33
|
const observer = new Observer(client, defaultedOptions.value);
|
|
33
|
-
const state = shallowReactive(observer.getCurrentResult());
|
|
34
|
+
const state = defaultedOptions.value.shallow ? shallowReactive(observer.getCurrentResult()) : reactive(observer.getCurrentResult());
|
|
34
35
|
let unsubscribe = () => {
|
|
35
36
|
};
|
|
36
37
|
watch(
|
|
@@ -102,10 +103,7 @@ function useBaseQuery(Observer, options, queryClient) {
|
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
105
|
);
|
|
105
|
-
const readonlyState =
|
|
106
|
-
// @ts-expect-error
|
|
107
|
-
defaultedOptions.value.shallow ? shallowReadonly(state) : readonly(state)
|
|
108
|
-
);
|
|
106
|
+
const readonlyState = defaultedOptions.value.shallow ? shallowReadonly(state) : readonly(state);
|
|
109
107
|
const object = toRefs(readonlyState);
|
|
110
108
|
for (const key in state) {
|
|
111
109
|
if (typeof state[key] === "function") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n readonly,\n shallowReactive,\n shallowReadonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type {\n DefaultedQueryObserverOptions,\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n TResult = QueryObserverResult<TData, TError>,\n> = {\n [K in keyof TResult]: K extends\n | 'fetchNextPage'\n | 'fetchPreviousPage'\n | 'refetch'\n ? TResult[K]\n : Ref<Readonly<TResult>[K]>\n} & {\n suspense: () => Promise<TResult>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composable like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const clonedOptions = cloneDeepUnref(options as any)\n\n if (typeof clonedOptions.enabled === 'function') {\n clonedOptions.enabled = clonedOptions.enabled()\n }\n\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(clonedOptions)\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = shallowReactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n const updater = () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n }\n\n watch(defaultedOptions, updater)\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n // fix #5910\n const refetch = (...args: Parameters<(typeof state)['refetch']>) => {\n updater()\n return state.refetch(...args)\n }\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>(\n (resolve, reject) => {\n let stopWatch = () => {\n // noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n // fix #6133\n observer.setOptions(defaultedOptions.value)\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n observer\n .fetchOptimistic(defaultedOptions.value)\n .then(resolve, (error: TError) => {\n if (\n shouldThrowError(defaultedOptions.value.throwOnError, [\n error,\n observer.getCurrentQuery(),\n ])\n ) {\n reject(error)\n } else {\n resolve(observer.getCurrentResult())\n }\n })\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run)\n },\n )\n }\n\n // Handle error boundary\n watch(\n () => state.error,\n (error) => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(defaultedOptions.value.throwOnError, [\n error as TError,\n observer.getCurrentQuery(),\n ])\n ) {\n throw error\n }\n },\n )\n\n
|
|
1
|
+
{"version":3,"sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n reactive,\n readonly,\n shallowReactive,\n shallowReadonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type {\n DefaultedQueryObserverOptions,\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n TResult = QueryObserverResult<TData, TError>,\n> = {\n [K in keyof TResult]: K extends\n | 'fetchNextPage'\n | 'fetchPreviousPage'\n | 'refetch'\n ? TResult[K]\n : Ref<Readonly<TResult>[K]>\n} & {\n suspense: () => Promise<TResult>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composable like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const clonedOptions = cloneDeepUnref(options as any)\n\n if (typeof clonedOptions.enabled === 'function') {\n clonedOptions.enabled = clonedOptions.enabled()\n }\n\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(clonedOptions)\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n // @ts-expect-error\n const state = defaultedOptions.value.shallow\n ? shallowReactive(observer.getCurrentResult())\n : reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n const updater = () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n }\n\n watch(defaultedOptions, updater)\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n // fix #5910\n const refetch = (...args: Parameters<(typeof state)['refetch']>) => {\n updater()\n return state.refetch(...args)\n }\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>(\n (resolve, reject) => {\n let stopWatch = () => {\n // noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n // fix #6133\n observer.setOptions(defaultedOptions.value)\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n observer\n .fetchOptimistic(defaultedOptions.value)\n .then(resolve, (error: TError) => {\n if (\n shouldThrowError(defaultedOptions.value.throwOnError, [\n error,\n observer.getCurrentQuery(),\n ])\n ) {\n reject(error)\n } else {\n resolve(observer.getCurrentResult())\n }\n })\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run)\n },\n )\n }\n\n // Handle error boundary\n watch(\n () => state.error,\n (error) => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(defaultedOptions.value.throwOnError, [\n error as TError,\n observer.getCurrentQuery(),\n ])\n ) {\n throw error\n }\n },\n )\n\n // @ts-expect-error\n const readonlyState = defaultedOptions.value.shallow\n ? shallowReadonly(state)\n : readonly(state)\n\n const object: any = toRefs(readonlyState)\n for (const key in state) {\n if (typeof state[key as keyof typeof state] === 'function') {\n object[key] = state[key as keyof typeof state]\n }\n }\n\n object.suspense = suspense\n object.refetch = refetch\n\n return object as UseBaseQueryReturnType<TData, TError>\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { g as UseInfiniteQueryOptions, h as UseInfiniteQueryReturnType, a as useInfiniteQuery } from './queryClient-
|
|
1
|
+
export { g as UseInfiniteQueryOptions, h as UseInfiniteQueryReturnType, a as useInfiniteQuery } from './queryClient-BAAUSDNa.cjs';
|
|
2
2
|
import '@tanstack/query-core';
|
|
3
3
|
import './types.cjs';
|
|
4
4
|
import 'vue-demi';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { g as UseInfiniteQueryOptions, h as UseInfiniteQueryReturnType, a as useInfiniteQuery } from './queryClient-
|
|
1
|
+
export { g as UseInfiniteQueryOptions, h as UseInfiniteQueryReturnType, a as useInfiniteQuery } from './queryClient-DlZcK5cH.js';
|
|
2
2
|
import '@tanstack/query-core';
|
|
3
3
|
import './types.js';
|
|
4
4
|
import 'vue-demi';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Ref } from 'vue-demi';
|
|
2
2
|
import { QueryFilters as QueryFilters$1 } from '@tanstack/query-core';
|
|
3
3
|
import { MaybeRefDeep } from './types.cjs';
|
|
4
|
-
import { Q as QueryClient } from './queryClient-
|
|
4
|
+
import { Q as QueryClient } from './queryClient-BAAUSDNa.cjs';
|
|
5
5
|
|
|
6
6
|
type QueryFilters = MaybeRefDeep<QueryFilters$1>;
|
|
7
7
|
declare function useIsFetching(fetchingFilters?: MaybeRefDeep<QueryFilters$1>, queryClient?: QueryClient): Ref<number>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Ref } from 'vue-demi';
|
|
2
2
|
import { QueryFilters as QueryFilters$1 } from '@tanstack/query-core';
|
|
3
3
|
import { MaybeRefDeep } from './types.js';
|
|
4
|
-
import { Q as QueryClient } from './queryClient-
|
|
4
|
+
import { Q as QueryClient } from './queryClient-DlZcK5cH.js';
|
|
5
5
|
|
|
6
6
|
type QueryFilters = MaybeRefDeep<QueryFilters$1>;
|
|
7
7
|
declare function useIsFetching(fetchingFilters?: MaybeRefDeep<QueryFilters$1>, queryClient?: QueryClient): Ref<number>;
|
|
@@ -40,7 +40,7 @@ function useMutation(mutationOptions, queryClient) {
|
|
|
40
40
|
return client.defaultMutationOptions((0, import_utils.cloneDeepUnref)(mutationOptions));
|
|
41
41
|
});
|
|
42
42
|
const observer = new import_query_core.MutationObserver(client, options.value);
|
|
43
|
-
const state = (0, import_vue_demi.shallowReactive)(observer.getCurrentResult());
|
|
43
|
+
const state = options.value.shallow ? (0, import_vue_demi.shallowReactive)(observer.getCurrentResult()) : (0, import_vue_demi.reactive)(observer.getCurrentResult());
|
|
44
44
|
const unsubscribe = observer.subscribe((result) => {
|
|
45
45
|
(0, import_utils.updateState)(state, result);
|
|
46
46
|
});
|
|
@@ -54,7 +54,7 @@ function useMutation(mutationOptions, queryClient) {
|
|
|
54
54
|
(0, import_vue_demi.onScopeDispose)(() => {
|
|
55
55
|
unsubscribe();
|
|
56
56
|
});
|
|
57
|
-
const readonlyState =
|
|
57
|
+
const readonlyState = options.value.shallow ? (0, import_vue_demi.shallowReadonly)(state) : (0, import_vue_demi.readonly)(state);
|
|
58
58
|
const resultRefs = (0, import_vue_demi.toRefs)(readonlyState);
|
|
59
59
|
(0, import_vue_demi.watch)(
|
|
60
60
|
() => state.error,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n readonly,\n shallowReactive,\n shallowReadonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultError,\n MutateFunction,\n MutateOptions,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\ntype UseMutationOptionsBase<TData, TError, TVariables, TContext> =\n MutationObserverOptions<TData, TError, TVariables, TContext> & {\n /**\n * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive.\n */\n shallow?: boolean\n }\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<UseMutationOptionsBase<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n TResult = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<TResult>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n UseMutationOptionsBase<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composable like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = shallowReactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(options, () => {\n observer.setOptions(options.value)\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const readonlyState
|
|
1
|
+
{"version":3,"sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n reactive,\n readonly,\n shallowReactive,\n shallowReadonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultError,\n MutateFunction,\n MutateOptions,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\ntype UseMutationOptionsBase<TData, TError, TVariables, TContext> =\n MutationObserverOptions<TData, TError, TVariables, TContext> & {\n /**\n * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive.\n */\n shallow?: boolean\n }\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<UseMutationOptionsBase<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n TResult = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<TResult>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n UseMutationOptionsBase<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composable like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = options.value.shallow\n ? shallowReactive(observer.getCurrentResult())\n : reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(options, () => {\n observer.setOptions(options.value)\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const readonlyState = options.value.shallow\n ? shallowReadonly(state)\n : readonly(state)\n\n const resultRefs = toRefs(readonlyState) as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n watch(\n () => state.error,\n (error) => {\n if (\n error &&\n shouldThrowError(options.value.throwOnError, [error as TError])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAUO;AACP,wBAAiC;AACjC,mBAA8D;AAC9D,4BAA+B;AAqDxB,SAAS,YAMd,iBAGA,aAC4D;AAC5D,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,KAAC,iCAAgB,GAAG;AACtB,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,SAAS,mBAAe,sCAAe;AAC7C,QAAM,cAAU,0BAAS,MAAM;AAC7B,WAAO,OAAO,2BAAuB,6BAAe,eAAe,CAAC;AAAA,EACtE,CAAC;AACD,QAAM,WAAW,IAAI,mCAAiB,QAAQ,QAAQ,KAAK;AAC3D,QAAM,QAAQ,QAAQ,MAAM,cACxB,iCAAgB,SAAS,iBAAiB,CAAC,QAC3C,0BAAS,SAAS,iBAAiB,CAAC;AAExC,QAAM,cAAc,SAAS,UAAU,CAAC,WAAW;AACjD,kCAAY,OAAO,MAAM;AAAA,EAC3B,CAAC;AAED,QAAM,SAAS,CACb,WACA,kBACG;AACH,aAAS,OAAO,WAAW,aAAa,EAAE,MAAM,MAAM;AAAA,IAEtD,CAAC;AAAA,EACH;AAEA,6BAAM,SAAS,MAAM;AACnB,aAAS,WAAW,QAAQ,KAAK;AAAA,EACnC,CAAC;AAED,sCAAe,MAAM;AACnB,gBAAY;AAAA,EACd,CAAC;AAED,QAAM,gBAAgB,QAAQ,MAAM,cAChC,iCAAgB,KAAK,QACrB,0BAAS,KAAK;AAElB,QAAM,iBAAa,wBAAO,aAAa;AAIvC;AAAA,IACE,MAAM,MAAM;AAAA,IACZ,CAAC,UAAU;AACT,UACE,aACA,+BAAiB,QAAQ,MAAM,cAAc,CAAC,KAAe,CAAC,GAC9D;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,aAAa,MAAM;AAAA,IACnB,OAAO,MAAM;AAAA,EACf;AACF;","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ToRefs } from 'vue-demi';
|
|
2
2
|
import { DefaultError, MutationObserverOptions, MutationObserverResult, MutateFunction } from '@tanstack/query-core';
|
|
3
3
|
import { MaybeRefDeep, DistributiveOmit } from './types.cjs';
|
|
4
|
-
import { Q as QueryClient } from './queryClient-
|
|
4
|
+
import { Q as QueryClient } from './queryClient-BAAUSDNa.cjs';
|
|
5
5
|
|
|
6
6
|
type MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<MutationObserverResult<TData, TError, TVariables, TContext>, 'mutate' | 'reset'>;
|
|
7
7
|
type UseMutationOptionsBase<TData, TError, TVariables, TContext> = MutationObserverOptions<TData, TError, TVariables, TContext> & {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ToRefs } from 'vue-demi';
|
|
2
2
|
import { DefaultError, MutationObserverOptions, MutationObserverResult, MutateFunction } from '@tanstack/query-core';
|
|
3
3
|
import { MaybeRefDeep, DistributiveOmit } from './types.js';
|
|
4
|
-
import { Q as QueryClient } from './queryClient-
|
|
4
|
+
import { Q as QueryClient } from './queryClient-DlZcK5cH.js';
|
|
5
5
|
|
|
6
6
|
type MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<MutationObserverResult<TData, TError, TVariables, TContext>, 'mutate' | 'reset'>;
|
|
7
7
|
type UseMutationOptionsBase<TData, TError, TVariables, TContext> = MutationObserverOptions<TData, TError, TVariables, TContext> & {
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
computed,
|
|
4
4
|
getCurrentScope,
|
|
5
5
|
onScopeDispose,
|
|
6
|
+
reactive,
|
|
6
7
|
readonly,
|
|
7
8
|
shallowReactive,
|
|
8
9
|
shallowReadonly,
|
|
@@ -25,7 +26,7 @@ function useMutation(mutationOptions, queryClient) {
|
|
|
25
26
|
return client.defaultMutationOptions(cloneDeepUnref(mutationOptions));
|
|
26
27
|
});
|
|
27
28
|
const observer = new MutationObserver(client, options.value);
|
|
28
|
-
const state = shallowReactive(observer.getCurrentResult());
|
|
29
|
+
const state = options.value.shallow ? shallowReactive(observer.getCurrentResult()) : reactive(observer.getCurrentResult());
|
|
29
30
|
const unsubscribe = observer.subscribe((result) => {
|
|
30
31
|
updateState(state, result);
|
|
31
32
|
});
|
|
@@ -39,7 +40,7 @@ function useMutation(mutationOptions, queryClient) {
|
|
|
39
40
|
onScopeDispose(() => {
|
|
40
41
|
unsubscribe();
|
|
41
42
|
});
|
|
42
|
-
const readonlyState =
|
|
43
|
+
const readonlyState = options.value.shallow ? shallowReadonly(state) : readonly(state);
|
|
43
44
|
const resultRefs = toRefs(readonlyState);
|
|
44
45
|
watch(
|
|
45
46
|
() => state.error,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n readonly,\n shallowReactive,\n shallowReadonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultError,\n MutateFunction,\n MutateOptions,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\ntype UseMutationOptionsBase<TData, TError, TVariables, TContext> =\n MutationObserverOptions<TData, TError, TVariables, TContext> & {\n /**\n * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive.\n */\n shallow?: boolean\n }\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<UseMutationOptionsBase<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n TResult = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<TResult>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n UseMutationOptionsBase<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composable like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = shallowReactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(options, () => {\n observer.setOptions(options.value)\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const readonlyState
|
|
1
|
+
{"version":3,"sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n reactive,\n readonly,\n shallowReactive,\n shallowReadonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultError,\n MutateFunction,\n MutateOptions,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\ntype UseMutationOptionsBase<TData, TError, TVariables, TContext> =\n MutationObserverOptions<TData, TError, TVariables, TContext> & {\n /**\n * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive.\n */\n shallow?: boolean\n }\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<UseMutationOptionsBase<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n TResult = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<TResult>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n UseMutationOptionsBase<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composable like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = options.value.shallow\n ? shallowReactive(observer.getCurrentResult())\n : reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(options, () => {\n observer.setOptions(options.value)\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const readonlyState = options.value.shallow\n ? shallowReadonly(state)\n : readonly(state)\n\n const resultRefs = toRefs(readonlyState) as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n watch(\n () => state.error,\n (error) => {\n if (\n error &&\n shouldThrowError(options.value.throwOnError, [error as TError])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,wBAAwB;AACjC,SAAS,gBAAgB,kBAAkB,mBAAmB;AAC9D,SAAS,sBAAsB;AAqDxB,SAAS,YAMd,iBAGA,aAC4D;AAC5D,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC,gBAAgB,GAAG;AACtB,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,SAAS,eAAe,eAAe;AAC7C,QAAM,UAAU,SAAS,MAAM;AAC7B,WAAO,OAAO,uBAAuB,eAAe,eAAe,CAAC;AAAA,EACtE,CAAC;AACD,QAAM,WAAW,IAAI,iBAAiB,QAAQ,QAAQ,KAAK;AAC3D,QAAM,QAAQ,QAAQ,MAAM,UACxB,gBAAgB,SAAS,iBAAiB,CAAC,IAC3C,SAAS,SAAS,iBAAiB,CAAC;AAExC,QAAM,cAAc,SAAS,UAAU,CAAC,WAAW;AACjD,gBAAY,OAAO,MAAM;AAAA,EAC3B,CAAC;AAED,QAAM,SAAS,CACb,WACA,kBACG;AACH,aAAS,OAAO,WAAW,aAAa,EAAE,MAAM,MAAM;AAAA,IAEtD,CAAC;AAAA,EACH;AAEA,QAAM,SAAS,MAAM;AACnB,aAAS,WAAW,QAAQ,KAAK;AAAA,EACnC,CAAC;AAED,iBAAe,MAAM;AACnB,gBAAY;AAAA,EACd,CAAC;AAED,QAAM,gBAAgB,QAAQ,MAAM,UAChC,gBAAgB,KAAK,IACrB,SAAS,KAAK;AAElB,QAAM,aAAa,OAAO,aAAa;AAIvC;AAAA,IACE,MAAM,MAAM;AAAA,IACZ,CAAC,UAAU;AACT,UACE,SACA,iBAAiB,QAAQ,MAAM,cAAc,CAAC,KAAe,CAAC,GAC9D;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,aAAa,MAAM;AAAA,IACnB,OAAO,MAAM;AAAA,EACf;AACF;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Ref } from 'vue-demi';
|
|
2
2
|
import { MutationFilters as MutationFilters$1, MutationState, Mutation } from '@tanstack/query-core';
|
|
3
|
-
import { Q as QueryClient } from './queryClient-
|
|
3
|
+
import { Q as QueryClient } from './queryClient-BAAUSDNa.cjs';
|
|
4
4
|
import { MaybeRefDeep } from './types.cjs';
|
|
5
5
|
|
|
6
6
|
type MutationFilters = MaybeRefDeep<MutationFilters$1>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Ref } from 'vue-demi';
|
|
2
2
|
import { MutationFilters as MutationFilters$1, MutationState, Mutation } from '@tanstack/query-core';
|
|
3
|
-
import { Q as QueryClient } from './queryClient-
|
|
3
|
+
import { Q as QueryClient } from './queryClient-DlZcK5cH.js';
|
|
4
4
|
import { MaybeRefDeep } from './types.js';
|
|
5
5
|
|
|
6
6
|
type MutationFilters = MaybeRefDeep<MutationFilters$1>;
|
|
@@ -102,7 +102,7 @@ function useQueries({
|
|
|
102
102
|
(0, import_vue_demi.onScopeDispose)(() => {
|
|
103
103
|
unsubscribe();
|
|
104
104
|
});
|
|
105
|
-
return
|
|
105
|
+
return options.shallow ? (0, import_vue_demi.shallowReadonly)(state) : (0, import_vue_demi.readonly)(state);
|
|
106
106
|
}
|
|
107
107
|
// Annotate the CommonJS export names for ESM import in node:
|
|
108
108
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useQueries.ts"],"sourcesContent":["import { QueriesObserver } from '@tanstack/query-core'\nimport {\n computed,\n getCurrentScope,\n onScopeDispose,\n readonly,\n shallowReadonly,\n shallowRef,\n unref,\n watch,\n} from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type {\n DefaultError,\n DefinedQueryObserverResult,\n QueriesObserverOptions,\n QueryFunction,\n QueryKey,\n QueryObserverResult,\n ThrowOnError,\n} from '@tanstack/query-core'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DeepUnwrapRef, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>\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: if UseQueryOptions are already being sent through, then just return T\n T extends UseQueryOptions\n ? DeepUnwrapRef<T>\n : // Part 2: 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 3: 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 4: 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 : T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, infer TQueryKey>\n | SkipTokenForUseQueries\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? UseQueryOptionsForUseQueries<\n TQueryFnData,\n TError,\n TQueryFnData,\n TQueryKey\n >\n : // Fallback\n UseQueryOptionsForUseQueries\n\n// A defined initialData setting should return a DefinedQueryObserverResult rather than QueryObserverResult\ntype GetDefinedOrUndefinedQueryResult<T, TData, TError = unknown> = T extends {\n initialData?: infer TInitialData\n}\n ? unknown extends TInitialData\n ? QueryObserverResult<TData, TError>\n : TInitialData extends TData\n ? DefinedQueryObserverResult<TData, TError>\n : TInitialData extends () => infer TInitialDataResult\n ? unknown extends TInitialDataResult\n ? QueryObserverResult<TData, TError>\n : TInitialDataResult extends TData\n ? DefinedQueryObserverResult<TData, TError>\n : QueryObserverResult<TData, TError>\n : QueryObserverResult<TData, TError>\n : QueryObserverResult<TData, TError>\n\ntype GetUseQueryResult<T> =\n // Part 1: if using UseQueryOptions then the types are already set\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any,\n any\n >\n ? GetDefinedOrUndefinedQueryResult<\n T,\n undefined extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >\n : // Part 2: 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 3: 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 4: 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 : T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, any>\n | SkipTokenForUseQueries\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? GetDefinedOrUndefinedQueryResult<\n T,\n TQueryFnData,\n unknown extends TError ? DefaultError : TError\n >\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\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 ? UseQueriesOptions<\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 * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends Array<any>,\n TResults extends Array<any> = [],\n TDepth extends ReadonlyArray<number> = [],\n> = TDepth['length'] extends MAXIMUM_DEPTH\n ? Array<QueryObserverResult>\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...TResults, GetUseQueryResult<Head>]\n : T extends [infer Head, ...infer Tails]\n ? UseQueriesResults<\n [...Tails],\n [...TResults, GetUseQueryResult<Head>],\n [...TDepth, 1]\n >\n : { [K in keyof T]: GetUseQueryResult<T[K]> }\n\ntype UseQueriesOptionsArg<T extends Array<any>> = readonly [\n ...UseQueriesOptions<T>,\n]\n\nexport function useQueries<\n T extends Array<any>,\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries:\n | MaybeRefDeep<UseQueriesOptionsArg<T>>\n | MaybeRefDeep<\n readonly [\n ...{ [K in keyof T]: GetUseQueryOptionsForUseQueries<T[K]> },\n ]\n >\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n shallow?: boolean\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composable like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() => {\n // Only unref the top level array.\n const queriesRaw = unref(queries) as ReadonlyArray<any>\n\n // Unref the rest for each element in the top level array.\n return queriesRaw.map((queryOptions) => {\n const clonedOptions = cloneDeepUnref(queryOptions)\n\n if (typeof clonedOptions.enabled === 'function') {\n clonedOptions.enabled = queryOptions.enabled()\n }\n\n const defaulted = client.defaultQueryOptions(clonedOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n })\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n\n const getOptimisticResult = () => {\n const [results, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n\n return getCombinedResult(\n results.map((result, index) => {\n return {\n ...result,\n refetch: async (...args: Array<any>) => {\n const [{ [index]: query }] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n\n return query!.refetch(...args)\n },\n }\n }),\n )\n }\n\n const state = shallowRef(getOptimisticResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n state.value = getOptimisticResult()\n })\n\n state.value = getOptimisticResult()\n }\n },\n { immediate: true },\n )\n\n watch(defaultedQueries, (queriesValue) => {\n observer.setQueries(\n queriesValue,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = getOptimisticResult()\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return process.env.NODE_ENV === 'production'\n ? state\n : options.shallow\n ? shallowReadonly(state)\n : (readonly(state) as Readonly<Ref<TCombinedResult>>)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAgC;AAChC,sBASO;AAEP,4BAA+B;AAC/B,mBAA+B;AA4NxB,SAAS,WAId;AAAA,EACE;AAAA,EACA,GAAG;AACL,GAWA,aACgC;AAChC,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,KAAC,iCAAgB,GAAG;AACtB,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,SAAS,mBAAe,sCAAe;AAE7C,QAAM,uBAAmB,0BAAS,MAAM;AAEtC,UAAM,iBAAa,uBAAM,OAAO;AAGhC,WAAO,WAAW,IAAI,CAAC,iBAAiB;AACtC,YAAM,oBAAgB,6BAAe,YAAY;AAEjD,UAAI,OAAO,cAAc,YAAY,YAAY;AAC/C,sBAAc,UAAU,aAAa,QAAQ;AAAA,MAC/C;AAEA,YAAM,YAAY,OAAO,oBAAoB,aAAa;AAC1D,gBAAU,qBAAqB,OAAO,YAAY,QAC9C,gBACA;AAEJ,aAAO;AAAA,IACT,CAAC;AAAA,EACH,CAAC;AAED,QAAM,WAAW,IAAI;AAAA,IACnB;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,sBAAsB,MAAM;AAChC,UAAM,CAAC,SAAS,iBAAiB,IAAI,SAAS;AAAA,MAC5C,iBAAiB;AAAA,MAChB,QAAoD;AAAA,IACvD;AAEA,WAAO;AAAA,MACL,QAAQ,IAAI,CAAC,QAAQ,UAAU;AAC7B,eAAO;AAAA,UACL,GAAG;AAAA,UACH,SAAS,UAAU,SAAqB;AACtC,kBAAM,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,SAAS;AAAA,cACpC,iBAAiB;AAAA,cAChB,QAAoD;AAAA,YACvD;AAEA,mBAAO,MAAO,QAAQ,GAAG,IAAI;AAAA,UAC/B;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,YAAQ,4BAAW,oBAAoB,CAAC;AAE9C,MAAI,cAAc,MAAM;AAAA,EAExB;AAEA;AAAA,IACE,OAAO;AAAA,IACP,CAAC,gBAAgB;AACf,UAAI,CAAC,aAAa;AAChB,oBAAY;AACZ,sBAAc,SAAS,UAAU,MAAM;AACrC,gBAAM,QAAQ,oBAAoB;AAAA,QACpC,CAAC;AAED,cAAM,QAAQ,oBAAoB;AAAA,MACpC;AAAA,IACF;AAAA,IACA,EAAE,WAAW,KAAK;AAAA,EACpB;AAEA,6BAAM,kBAAkB,CAAC,iBAAiB;AACxC,aAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AACA,UAAM,QAAQ,oBAAoB;AAAA,EACpC,CAAC;AAED,sCAAe,MAAM;AACnB,gBAAY;AAAA,EACd,CAAC;AAED,SAAO,QAAQ,IAAI,aAAa,eAC5B,QACA,QAAQ,cACN,iCAAgB,KAAK,QACpB,0BAAS,KAAK;AACvB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/useQueries.ts"],"sourcesContent":["import { QueriesObserver } from '@tanstack/query-core'\nimport {\n computed,\n getCurrentScope,\n onScopeDispose,\n readonly,\n shallowReadonly,\n shallowRef,\n unref,\n watch,\n} from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type {\n DefaultError,\n DefinedQueryObserverResult,\n QueriesObserverOptions,\n QueryFunction,\n QueryKey,\n QueryObserverResult,\n ThrowOnError,\n} from '@tanstack/query-core'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DeepUnwrapRef, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>\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: if UseQueryOptions are already being sent through, then just return T\n T extends UseQueryOptions\n ? DeepUnwrapRef<T>\n : // Part 2: 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 3: 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 4: 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 : T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, infer TQueryKey>\n | SkipTokenForUseQueries\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? UseQueryOptionsForUseQueries<\n TQueryFnData,\n TError,\n TQueryFnData,\n TQueryKey\n >\n : // Fallback\n UseQueryOptionsForUseQueries\n\n// A defined initialData setting should return a DefinedQueryObserverResult rather than QueryObserverResult\ntype GetDefinedOrUndefinedQueryResult<T, TData, TError = unknown> = T extends {\n initialData?: infer TInitialData\n}\n ? unknown extends TInitialData\n ? QueryObserverResult<TData, TError>\n : TInitialData extends TData\n ? DefinedQueryObserverResult<TData, TError>\n : TInitialData extends () => infer TInitialDataResult\n ? unknown extends TInitialDataResult\n ? QueryObserverResult<TData, TError>\n : TInitialDataResult extends TData\n ? DefinedQueryObserverResult<TData, TError>\n : QueryObserverResult<TData, TError>\n : QueryObserverResult<TData, TError>\n : QueryObserverResult<TData, TError>\n\ntype GetUseQueryResult<T> =\n // Part 1: if using UseQueryOptions then the types are already set\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any,\n any\n >\n ? GetDefinedOrUndefinedQueryResult<\n T,\n undefined extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >\n : // Part 2: 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 3: 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 4: 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 : T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, any>\n | SkipTokenForUseQueries\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? GetDefinedOrUndefinedQueryResult<\n T,\n TQueryFnData,\n unknown extends TError ? DefaultError : TError\n >\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\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 ? UseQueriesOptions<\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 * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends Array<any>,\n TResults extends Array<any> = [],\n TDepth extends ReadonlyArray<number> = [],\n> = TDepth['length'] extends MAXIMUM_DEPTH\n ? Array<QueryObserverResult>\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...TResults, GetUseQueryResult<Head>]\n : T extends [infer Head, ...infer Tails]\n ? UseQueriesResults<\n [...Tails],\n [...TResults, GetUseQueryResult<Head>],\n [...TDepth, 1]\n >\n : { [K in keyof T]: GetUseQueryResult<T[K]> }\n\ntype UseQueriesOptionsArg<T extends Array<any>> = readonly [\n ...UseQueriesOptions<T>,\n]\n\nexport function useQueries<\n T extends Array<any>,\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries:\n | MaybeRefDeep<UseQueriesOptionsArg<T>>\n | MaybeRefDeep<\n readonly [\n ...{ [K in keyof T]: GetUseQueryOptionsForUseQueries<T[K]> },\n ]\n >\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n shallow?: boolean\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composable like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() => {\n // Only unref the top level array.\n const queriesRaw = unref(queries) as ReadonlyArray<any>\n\n // Unref the rest for each element in the top level array.\n return queriesRaw.map((queryOptions) => {\n const clonedOptions = cloneDeepUnref(queryOptions)\n\n if (typeof clonedOptions.enabled === 'function') {\n clonedOptions.enabled = queryOptions.enabled()\n }\n\n const defaulted = client.defaultQueryOptions(clonedOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n })\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n\n const getOptimisticResult = () => {\n const [results, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n\n return getCombinedResult(\n results.map((result, index) => {\n return {\n ...result,\n refetch: async (...args: Array<any>) => {\n const [{ [index]: query }] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n\n return query!.refetch(...args)\n },\n }\n }),\n )\n }\n\n const state = shallowRef(getOptimisticResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n state.value = getOptimisticResult()\n })\n\n state.value = getOptimisticResult()\n }\n },\n { immediate: true },\n )\n\n watch(defaultedQueries, (queriesValue) => {\n observer.setQueries(\n queriesValue,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = getOptimisticResult()\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return options.shallow\n ? shallowReadonly(state)\n : (readonly(state) as Readonly<Ref<TCombinedResult>>)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAgC;AAChC,sBASO;AAEP,4BAA+B;AAC/B,mBAA+B;AA4NxB,SAAS,WAId;AAAA,EACE;AAAA,EACA,GAAG;AACL,GAWA,aACgC;AAChC,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,KAAC,iCAAgB,GAAG;AACtB,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,SAAS,mBAAe,sCAAe;AAE7C,QAAM,uBAAmB,0BAAS,MAAM;AAEtC,UAAM,iBAAa,uBAAM,OAAO;AAGhC,WAAO,WAAW,IAAI,CAAC,iBAAiB;AACtC,YAAM,oBAAgB,6BAAe,YAAY;AAEjD,UAAI,OAAO,cAAc,YAAY,YAAY;AAC/C,sBAAc,UAAU,aAAa,QAAQ;AAAA,MAC/C;AAEA,YAAM,YAAY,OAAO,oBAAoB,aAAa;AAC1D,gBAAU,qBAAqB,OAAO,YAAY,QAC9C,gBACA;AAEJ,aAAO;AAAA,IACT,CAAC;AAAA,EACH,CAAC;AAED,QAAM,WAAW,IAAI;AAAA,IACnB;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,sBAAsB,MAAM;AAChC,UAAM,CAAC,SAAS,iBAAiB,IAAI,SAAS;AAAA,MAC5C,iBAAiB;AAAA,MAChB,QAAoD;AAAA,IACvD;AAEA,WAAO;AAAA,MACL,QAAQ,IAAI,CAAC,QAAQ,UAAU;AAC7B,eAAO;AAAA,UACL,GAAG;AAAA,UACH,SAAS,UAAU,SAAqB;AACtC,kBAAM,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,SAAS;AAAA,cACpC,iBAAiB;AAAA,cAChB,QAAoD;AAAA,YACvD;AAEA,mBAAO,MAAO,QAAQ,GAAG,IAAI;AAAA,UAC/B;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,YAAQ,4BAAW,oBAAoB,CAAC;AAE9C,MAAI,cAAc,MAAM;AAAA,EAExB;AAEA;AAAA,IACE,OAAO;AAAA,IACP,CAAC,gBAAgB;AACf,UAAI,CAAC,aAAa;AAChB,oBAAY;AACZ,sBAAc,SAAS,UAAU,MAAM;AACrC,gBAAM,QAAQ,oBAAoB;AAAA,QACpC,CAAC;AAED,cAAM,QAAQ,oBAAoB;AAAA,MACpC;AAAA,IACF;AAAA,IACA,EAAE,WAAW,KAAK;AAAA,EACpB;AAEA,6BAAM,kBAAkB,CAAC,iBAAiB;AACxC,aAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AACA,UAAM,QAAQ,oBAAoB;AAAA,EACpC,CAAC;AAED,sCAAe,MAAM;AACnB,gBAAY;AAAA,EACd,CAAC;AAED,SAAO,QAAQ,cACX,iCAAgB,KAAK,QACpB,0BAAS,KAAK;AACrB;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Ref } from 'vue-demi';
|
|
2
2
|
import { QueryObserverResult, DefinedQueryObserverResult, DefaultError, QueryFunction, ThrowOnError, QueryKey } from '@tanstack/query-core';
|
|
3
|
-
import { b as UseQueryOptions, Q as QueryClient } from './queryClient-
|
|
3
|
+
import { b as UseQueryOptions, Q as QueryClient } from './queryClient-BAAUSDNa.cjs';
|
|
4
4
|
import { MaybeRefDeep, DeepUnwrapRef } from './types.cjs';
|
|
5
5
|
|
|
6
6
|
type UseQueryOptionsForUseQueries<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Ref } from 'vue-demi';
|
|
2
2
|
import { QueryObserverResult, DefinedQueryObserverResult, DefaultError, QueryFunction, ThrowOnError, QueryKey } from '@tanstack/query-core';
|
|
3
|
-
import { b as UseQueryOptions, Q as QueryClient } from './queryClient-
|
|
3
|
+
import { b as UseQueryOptions, Q as QueryClient } from './queryClient-DlZcK5cH.js';
|
|
4
4
|
import { MaybeRefDeep, DeepUnwrapRef } from './types.js';
|
|
5
5
|
|
|
6
6
|
type UseQueryOptionsForUseQueries<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>;
|
|
@@ -87,7 +87,7 @@ function useQueries({
|
|
|
87
87
|
onScopeDispose(() => {
|
|
88
88
|
unsubscribe();
|
|
89
89
|
});
|
|
90
|
-
return
|
|
90
|
+
return options.shallow ? shallowReadonly(state) : readonly(state);
|
|
91
91
|
}
|
|
92
92
|
export {
|
|
93
93
|
useQueries
|