@tanstack/vue-query 5.54.1 → 5.55.2
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-hn1RYJHC.d.ts → queryClient-Bq4NnYa7.d.ts} +4 -0
- package/build/legacy/{queryClient-DvIKsqGL.d.cts → queryClient-v1s104Ur.d.cts} +4 -0
- 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 +6 -2
- 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 +8 -3
- package/build/legacy/useBaseQuery.js.map +1 -1
- package/build/legacy/useInfiniteQuery.cjs.map +1 -1
- package/build/legacy/useInfiniteQuery.d.cts +1 -1
- package/build/legacy/useInfiniteQuery.d.ts +1 -1
- package/build/legacy/useInfiniteQuery.js.map +1 -1
- package/build/legacy/useIsFetching.d.cts +1 -1
- package/build/legacy/useIsFetching.d.ts +1 -1
- package/build/legacy/useMutation.cjs +3 -2
- package/build/legacy/useMutation.cjs.map +1 -1
- package/build/legacy/useMutation.d.cts +7 -4
- package/build/legacy/useMutation.d.ts +7 -4
- package/build/legacy/useMutation.js +5 -3
- package/build/legacy/useMutation.js.map +1 -1
- package/build/legacy/useMutationState.cjs +2 -2
- package/build/legacy/useMutationState.cjs.map +1 -1
- package/build/legacy/useMutationState.d.cts +3 -3
- package/build/legacy/useMutationState.d.ts +3 -3
- package/build/legacy/useMutationState.js +4 -4
- package/build/legacy/useMutationState.js.map +1 -1
- package/build/legacy/useQueries.cjs +1 -1
- package/build/legacy/useQueries.cjs.map +1 -1
- package/build/legacy/useQueries.d.cts +2 -1
- package/build/legacy/useQueries.d.ts +2 -1
- package/build/legacy/useQueries.js +2 -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/utils.cjs.map +1 -1
- package/build/legacy/utils.d.cts +1 -1
- package/build/legacy/utils.d.ts +1 -1
- package/build/legacy/utils.js.map +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-hn1RYJHC.d.ts → queryClient-Bq4NnYa7.d.ts} +4 -0
- package/build/modern/{queryClient-DvIKsqGL.d.cts → queryClient-v1s104Ur.d.cts} +4 -0
- 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 +6 -2
- 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 +8 -3
- package/build/modern/useBaseQuery.js.map +1 -1
- package/build/modern/useInfiniteQuery.cjs.map +1 -1
- package/build/modern/useInfiniteQuery.d.cts +1 -1
- package/build/modern/useInfiniteQuery.d.ts +1 -1
- package/build/modern/useInfiniteQuery.js.map +1 -1
- package/build/modern/useIsFetching.d.cts +1 -1
- package/build/modern/useIsFetching.d.ts +1 -1
- package/build/modern/useMutation.cjs +3 -2
- package/build/modern/useMutation.cjs.map +1 -1
- package/build/modern/useMutation.d.cts +7 -4
- package/build/modern/useMutation.d.ts +7 -4
- package/build/modern/useMutation.js +5 -3
- package/build/modern/useMutation.js.map +1 -1
- package/build/modern/useMutationState.cjs +2 -2
- package/build/modern/useMutationState.cjs.map +1 -1
- package/build/modern/useMutationState.d.cts +3 -3
- package/build/modern/useMutationState.d.ts +3 -3
- package/build/modern/useMutationState.js +4 -4
- package/build/modern/useMutationState.js.map +1 -1
- package/build/modern/useQueries.cjs +1 -1
- package/build/modern/useQueries.cjs.map +1 -1
- package/build/modern/useQueries.d.cts +2 -1
- package/build/modern/useQueries.d.ts +2 -1
- package/build/modern/useQueries.js +2 -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/utils.cjs.map +1 -1
- package/build/modern/utils.d.cts +1 -1
- package/build/modern/utils.d.ts +1 -1
- package/build/modern/utils.js.map +1 -1
- package/build/modern/vueQueryPlugin.d.cts +1 -1
- package/build/modern/vueQueryPlugin.d.ts +1 -1
- package/package.json +2 -2
- package/src/useBaseQuery.ts +12 -3
- package/src/useInfiniteQuery.ts +2 -0
- package/src/useMutation.ts +18 -5
- package/src/useMutationState.ts +8 -6
- package/src/useQueries.ts +7 -1
- package/src/useQuery.ts +31 -27
- package/src/utils.ts +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Ref } from 'vue-demi';
|
|
2
2
|
import { QueryObserverResult, DefaultError, QueryKey, QueryFunction, ThrowOnError, DefinedQueryObserverResult } from '@tanstack/query-core';
|
|
3
|
-
import { Q as QueryClient, U as UseQueryOptions } from './queryClient-
|
|
3
|
+
import { Q as QueryClient, U as UseQueryOptions } from './queryClient-Bq4NnYa7.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>;
|
|
@@ -75,6 +75,7 @@ type UseQueriesOptionsArg<T extends Array<any>> = readonly [
|
|
|
75
75
|
declare function useQueries<T extends Array<any>, TCombinedResult = UseQueriesResults<T>>({ queries, ...options }: {
|
|
76
76
|
queries: MaybeRefDeep<UseQueriesOptionsArg<T>>;
|
|
77
77
|
combine?: (result: UseQueriesResults<T>) => TCombinedResult;
|
|
78
|
+
shallow?: boolean;
|
|
78
79
|
}, queryClient?: QueryClient): Readonly<Ref<TCombinedResult>>;
|
|
79
80
|
|
|
80
81
|
export { type UseQueriesOptions, type UseQueriesResults, useQueries };
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
getCurrentScope,
|
|
6
6
|
onScopeDispose,
|
|
7
7
|
readonly,
|
|
8
|
+
shallowReadonly,
|
|
8
9
|
shallowRef,
|
|
9
10
|
unref,
|
|
10
11
|
watch
|
|
@@ -86,7 +87,7 @@ function useQueries({
|
|
|
86
87
|
onScopeDispose(() => {
|
|
87
88
|
unsubscribe();
|
|
88
89
|
});
|
|
89
|
-
return readonly(state);
|
|
90
|
+
return process.env.NODE_ENV === "production" ? state : options.shallow ? shallowReadonly(state) : readonly(state);
|
|
90
91
|
}
|
|
91
92
|
export {
|
|
92
93
|
useQueries
|
|
@@ -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 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 : T extends Array<\n UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >\n >\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n Array<\n QueryObserverResult<\n unknown extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >\n >\n : // Fallback\n Array<QueryObserverResult>\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: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\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 const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n const state = shallowRef(getCombinedResult())\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 const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedQueries,\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n state.value = getCombinedResultPersisted()\n },\n { flush: 'sync' },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"mappings":";AAAA,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AA4OxB,SAAS,WAId;AAAA,EACE;AAAA,EACA,GAAG;AACL,GAIA,aACgC;AAChC,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;AAE7C,QAAM,mBAAmB,SAAS,MAAM;AAEtC,UAAM,aAAa,MAAM,OAAO;AAGhC,WAAO,WAAW,IAAI,CAAC,iBAAiB;AACtC,YAAM,gBAAgB,eAAe,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;AACA,QAAM,CAAC,EAAE,iBAAiB,IAAI,SAAS;AAAA,IACrC,iBAAiB;AAAA,IAChB,QAAoD;AAAA,EACvD;AACA,QAAM,QAAQ,WAAW,kBAAkB,CAAC;AAE5C,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,CAAC,EAAE,0BAA0B,IAAI,SAAS;AAAA,YAC9C,iBAAiB;AAAA,YAChB,QAAoD;AAAA,UACvD;AACA,gBAAM,QAAQ,2BAA2B;AAAA,QAC3C,CAAC;AAED,cAAM,CAAC,EAAE,0BAA0B,IAAI,SAAS;AAAA,UAC9C,iBAAiB;AAAA,UAChB,QAAoD;AAAA,QACvD;AACA,cAAM,QAAQ,2BAA2B;AAAA,MAC3C;AAAA,IACF;AAAA,IACA,EAAE,WAAW,KAAK;AAAA,EACpB;AAEA;AAAA,IACE;AAAA,IACA,MAAM;AACJ,eAAS;AAAA,QACP,iBAAiB;AAAA,QACjB;AAAA,MACF;AACA,YAAM,CAAC,EAAE,0BAA0B,IAAI,SAAS;AAAA,QAC9C,iBAAiB;AAAA,QAChB,QAAoD;AAAA,MACvD;AACA,YAAM,QAAQ,2BAA2B;AAAA,IAC3C;AAAA,IACA,EAAE,OAAO,OAAO;AAAA,EAClB;AAEA,iBAAe,MAAM;AACnB,gBAAY;AAAA,EACd,CAAC;AAED,SAAO,SAAS,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 : T extends Array<\n UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >\n >\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n Array<\n QueryObserverResult<\n unknown extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >\n >\n : // Fallback\n Array<QueryObserverResult>\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: MaybeRefDeep<UseQueriesOptionsArg<T>>\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 const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n const state = shallowRef(getCombinedResult())\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 const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedQueries,\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n state.value = getCombinedResultPersisted()\n },\n { flush: 'sync' },\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,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AA4OxB,SAAS,WAId;AAAA,EACE;AAAA,EACA,GAAG;AACL,GAKA,aACgC;AAChC,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;AAE7C,QAAM,mBAAmB,SAAS,MAAM;AAEtC,UAAM,aAAa,MAAM,OAAO;AAGhC,WAAO,WAAW,IAAI,CAAC,iBAAiB;AACtC,YAAM,gBAAgB,eAAe,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;AACA,QAAM,CAAC,EAAE,iBAAiB,IAAI,SAAS;AAAA,IACrC,iBAAiB;AAAA,IAChB,QAAoD;AAAA,EACvD;AACA,QAAM,QAAQ,WAAW,kBAAkB,CAAC;AAE5C,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,CAAC,EAAE,0BAA0B,IAAI,SAAS;AAAA,YAC9C,iBAAiB;AAAA,YAChB,QAAoD;AAAA,UACvD;AACA,gBAAM,QAAQ,2BAA2B;AAAA,QAC3C,CAAC;AAED,cAAM,CAAC,EAAE,0BAA0B,IAAI,SAAS;AAAA,UAC9C,iBAAiB;AAAA,UAChB,QAAoD;AAAA,QACvD;AACA,cAAM,QAAQ,2BAA2B;AAAA,MAC3C;AAAA,IACF;AAAA,IACA,EAAE,WAAW,KAAK;AAAA,EACpB;AAEA;AAAA,IACE;AAAA,IACA,MAAM;AACJ,eAAS;AAAA,QACP,iBAAiB;AAAA,QACjB;AAAA,MACF;AACA,YAAM,CAAC,EAAE,0BAA0B,IAAI,SAAS;AAAA,QAC9C,iBAAiB;AAAA,QAChB,QAAoD;AAAA,MACvD;AACA,YAAM,QAAQ,2BAA2B;AAAA,IAC3C;AAAA,IACA,EAAE,OAAO,OAAO;AAAA,EAClB;AAEA,iBAAe,MAAM;AACnB,gBAAY;AAAA,EACd,CAAC;AAED,SAAO,QAAQ,IAAI,aAAa,eAC5B,QACA,QAAQ,UACN,gBAAgB,KAAK,IACpB,SAAS,KAAK;AACvB;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useQuery.ts"],"sourcesContent":["import { QueryObserver } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type {\n DefaultError,\n DefinedQueryObserverResult,\n QueryKey,\n QueryObserverOptions,\n} from '@tanstack/query-core'\nimport type { UseBaseQueryReturnType } from './useBaseQuery'\nimport type {\n DeepUnwrapRef,\n MaybeRef,\n MaybeRefDeep,\n MaybeRefOrGetter,\n} from './types'\nimport type { QueryClient } from './queryClient'\n\ntype NonUndefinedGuard<T> = T extends undefined ? never : T\n\nexport type UseQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = MaybeRef
|
|
1
|
+
{"version":3,"sources":["../../src/useQuery.ts"],"sourcesContent":["import { QueryObserver } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type {\n DefaultError,\n DefinedQueryObserverResult,\n QueryKey,\n QueryObserverOptions,\n} from '@tanstack/query-core'\nimport type { UseBaseQueryReturnType } from './useBaseQuery'\nimport type {\n DeepUnwrapRef,\n MaybeRef,\n MaybeRefDeep,\n MaybeRefOrGetter,\n} from './types'\nimport type { QueryClient } from './queryClient'\n\ntype NonUndefinedGuard<T> = T extends undefined ? never : T\n\nexport type UseQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = MaybeRef<\n {\n [Property in keyof QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >]: Property extends 'enabled'\n ? MaybeRefOrGetter<\n QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n DeepUnwrapRef<TQueryKey>\n >[Property]\n >\n : MaybeRefDeep<\n QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n DeepUnwrapRef<TQueryKey>\n >[Property]\n >\n } & {\n shallow?: boolean\n }\n>\n\nexport type UndefinedInitialQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> & {\n initialData?: undefined\n}\n\nexport type DefinedInitialQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> & {\n initialData:\n | NonUndefinedGuard<TQueryFnData>\n | (() => NonUndefinedGuard<TQueryFnData>)\n}\n\nexport type UseQueryReturnType<TData, TError> = UseBaseQueryReturnType<\n TData,\n TError\n>\n\nexport type UseQueryDefinedReturnType<TData, TError> = UseBaseQueryReturnType<\n TData,\n TError,\n DefinedQueryObserverResult<TData, TError>\n>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n queryClient?: QueryClient,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n queryClient?: QueryClient,\n):\n | UseQueryReturnType<TData, TError>\n | UseQueryDefinedReturnType<TData, TError> {\n return useBaseQuery(QueryObserver, options, queryClient)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA8B;AAC9B,0BAA6B;AA2HtB,SAAS,SAMd,SAOA,aAG2C;AAC3C,aAAO,kCAAa,iCAAe,SAAS,WAAW;AACzD;","names":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import '@tanstack/query-core';
|
|
2
|
-
export { D as DefinedInitialQueryOptions, d as UndefinedInitialQueryOptions, c as UseQueryDefinedReturnType, U as UseQueryOptions, b as UseQueryReturnType, u as useQuery } from './queryClient-
|
|
2
|
+
export { D as DefinedInitialQueryOptions, d as UndefinedInitialQueryOptions, c as UseQueryDefinedReturnType, U as UseQueryOptions, b as UseQueryReturnType, u as useQuery } from './queryClient-v1s104Ur.cjs';
|
|
3
3
|
import './types.cjs';
|
|
4
4
|
import 'vue-demi';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import '@tanstack/query-core';
|
|
2
|
-
export { D as DefinedInitialQueryOptions, d as UndefinedInitialQueryOptions, c as UseQueryDefinedReturnType, U as UseQueryOptions, b as UseQueryReturnType, u as useQuery } from './queryClient-
|
|
2
|
+
export { D as DefinedInitialQueryOptions, d as UndefinedInitialQueryOptions, c as UseQueryDefinedReturnType, U as UseQueryOptions, b as UseQueryReturnType, u as useQuery } from './queryClient-Bq4NnYa7.js';
|
|
3
3
|
import './types.js';
|
|
4
4
|
import 'vue-demi';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useQuery.ts"],"sourcesContent":["import { QueryObserver } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type {\n DefaultError,\n DefinedQueryObserverResult,\n QueryKey,\n QueryObserverOptions,\n} from '@tanstack/query-core'\nimport type { UseBaseQueryReturnType } from './useBaseQuery'\nimport type {\n DeepUnwrapRef,\n MaybeRef,\n MaybeRefDeep,\n MaybeRefOrGetter,\n} from './types'\nimport type { QueryClient } from './queryClient'\n\ntype NonUndefinedGuard<T> = T extends undefined ? never : T\n\nexport type UseQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = MaybeRef
|
|
1
|
+
{"version":3,"sources":["../../src/useQuery.ts"],"sourcesContent":["import { QueryObserver } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type {\n DefaultError,\n DefinedQueryObserverResult,\n QueryKey,\n QueryObserverOptions,\n} from '@tanstack/query-core'\nimport type { UseBaseQueryReturnType } from './useBaseQuery'\nimport type {\n DeepUnwrapRef,\n MaybeRef,\n MaybeRefDeep,\n MaybeRefOrGetter,\n} from './types'\nimport type { QueryClient } from './queryClient'\n\ntype NonUndefinedGuard<T> = T extends undefined ? never : T\n\nexport type UseQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = MaybeRef<\n {\n [Property in keyof QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >]: Property extends 'enabled'\n ? MaybeRefOrGetter<\n QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n DeepUnwrapRef<TQueryKey>\n >[Property]\n >\n : MaybeRefDeep<\n QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n DeepUnwrapRef<TQueryKey>\n >[Property]\n >\n } & {\n shallow?: boolean\n }\n>\n\nexport type UndefinedInitialQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> & {\n initialData?: undefined\n}\n\nexport type DefinedInitialQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> & {\n initialData:\n | NonUndefinedGuard<TQueryFnData>\n | (() => NonUndefinedGuard<TQueryFnData>)\n}\n\nexport type UseQueryReturnType<TData, TError> = UseBaseQueryReturnType<\n TData,\n TError\n>\n\nexport type UseQueryDefinedReturnType<TData, TError> = UseBaseQueryReturnType<\n TData,\n TError,\n DefinedQueryObserverResult<TData, TError>\n>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n queryClient?: QueryClient,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey\n >,\n queryClient?: QueryClient,\n):\n | UseQueryReturnType<TData, TError>\n | UseQueryDefinedReturnType<TData, TError> {\n return useBaseQuery(QueryObserver, options, queryClient)\n}\n"],"mappings":";AAAA,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AA2HtB,SAAS,SAMd,SAOA,aAG2C;AAC3C,SAAO,aAAa,eAAe,SAAS,WAAW;AACzD;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { isRef, unref } from 'vue-demi'\nimport type { MaybeRefDeep } from './types'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function updateState(\n state: Record<string,
|
|
1
|
+
{"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { isRef, unref } from 'vue-demi'\nimport type { MaybeRefDeep } from './types'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function updateState(\n state: Record<string, any>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\n// Helper function for cloning deep objects where\n// the level and key is provided to the callback function.\nfunction _cloneDeep<T>(\n value: MaybeRefDeep<T>,\n customize?: (\n val: MaybeRefDeep<T>,\n key: string,\n level: number,\n ) => T | undefined,\n currentKey: string = '',\n currentLevel: number = 0,\n): T {\n if (customize) {\n const result = customize(value, currentKey, currentLevel)\n if (result === undefined && isRef(value)) {\n return result as T\n }\n if (result !== undefined) {\n return result\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val, index) =>\n _cloneDeep(val, customize, String(index), currentLevel + 1),\n ) as unknown as T\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n _cloneDeep(val, customize, key, currentLevel + 1),\n ])\n return Object.fromEntries(entries)\n }\n\n return value as T\n}\n\nexport function cloneDeep<T>(\n value: MaybeRefDeep<T>,\n customize?: (\n val: MaybeRefDeep<T>,\n key: string,\n level: number,\n ) => T | undefined,\n): T {\n return _cloneDeep(value, customize)\n}\n\nexport function cloneDeepUnref<T>(\n obj: MaybeRefDeep<T>,\n unrefGetters = false,\n): T {\n return cloneDeep(obj, (val, key, level) => {\n // Check if we're at the top level and the key is 'queryKey'\n //\n // If so, take the recursive descent where we resolve\n // getters to values as well as refs.\n if (level === 1 && key === 'queryKey') {\n return cloneDeepUnref(val, true)\n }\n\n // Resolve getters to values if specified.\n if (unrefGetters && isFunction(val)) {\n // Cast due to older TS versions not allowing calling\n // on certain intersection types.\n return cloneDeepUnref((val as Function)(), unrefGetters)\n }\n\n // Unref refs and continue to recurse into the value.\n if (isRef(val)) {\n return cloneDeepUnref(unref(val), unrefGetters)\n }\n\n return undefined\n })\n}\n\n// eslint-disable-next-line @typescript-eslint/no-wrapper-object-types\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n\nfunction isFunction(value: unknown): value is Function {\n return typeof value === 'function'\n}\n\nexport function shouldThrowError<T extends (...args: Array<any>) => boolean>(\n throwOnError: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow throwOnError function to override throwing behavior on a per-error basis\n if (typeof throwOnError === 'function') {\n return throwOnError(...params)\n }\n\n return !!throwOnError\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA6B;AAGtB,IAAM,mBAAmB;AAEzB,SAAS,aAAa,KAAc;AACzC,QAAM,SAAS,MAAM,IAAI,GAAG,KAAK;AACjC,SAAO,GAAG,gBAAgB,GAAG,MAAM;AACrC;AAEO,SAAS,YACd,OACA,QACM;AACN,SAAO,KAAK,KAAK,EAAE,QAAQ,CAAC,QAAQ;AAClC,UAAM,GAAG,IAAI,OAAO,GAAG;AAAA,EACzB,CAAC;AACH;AAIA,SAAS,WACP,OACA,WAKA,aAAqB,IACrB,eAAuB,GACpB;AACH,MAAI,WAAW;AACb,UAAM,SAAS,UAAU,OAAO,YAAY,YAAY;AACxD,QAAI,WAAW,cAAa,uBAAM,KAAK,GAAG;AACxC,aAAO;AAAA,IACT;AACA,QAAI,WAAW,QAAW;AACxB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM;AAAA,MAAI,CAAC,KAAK,UACrB,WAAW,KAAK,WAAW,OAAO,KAAK,GAAG,eAAe,CAAC;AAAA,IAC5D;AAAA,EACF;AAEA,MAAI,OAAO,UAAU,YAAY,cAAc,KAAK,GAAG;AACrD,UAAM,UAAU,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM;AAAA,MACxD;AAAA,MACA,WAAW,KAAK,WAAW,KAAK,eAAe,CAAC;AAAA,IAClD,CAAC;AACD,WAAO,OAAO,YAAY,OAAO;AAAA,EACnC;AAEA,SAAO;AACT;AAEO,SAAS,UACd,OACA,WAKG;AACH,SAAO,WAAW,OAAO,SAAS;AACpC;AAEO,SAAS,eACd,KACA,eAAe,OACZ;AACH,SAAO,UAAU,KAAK,CAAC,KAAK,KAAK,UAAU;AAKzC,QAAI,UAAU,KAAK,QAAQ,YAAY;AACrC,aAAO,eAAe,KAAK,IAAI;AAAA,IACjC;AAGA,QAAI,gBAAgB,WAAW,GAAG,GAAG;AAGnC,aAAO,eAAgB,IAAiB,GAAG,YAAY;AAAA,IACzD;AAGA,YAAI,uBAAM,GAAG,GAAG;AACd,aAAO,mBAAe,uBAAM,GAAG,GAAG,YAAY;AAAA,IAChD;AAEA,WAAO;AAAA,EACT,CAAC;AACH;AAGA,SAAS,cAAc,OAAiC;AACtD,MAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,mBAAmB;AAC/D,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,OAAO,eAAe,KAAK;AAC7C,SAAO,cAAc,QAAQ,cAAc,OAAO;AACpD;AAEA,SAAS,WAAW,OAAmC;AACrD,SAAO,OAAO,UAAU;AAC1B;AAEO,SAAS,iBACd,cACA,QACS;AAET,MAAI,OAAO,iBAAiB,YAAY;AACtC,WAAO,aAAa,GAAG,MAAM;AAAA,EAC/B;AAEA,SAAO,CAAC,CAAC;AACX;","names":[]}
|
package/build/modern/utils.d.cts
CHANGED
|
@@ -3,7 +3,7 @@ import 'vue-demi';
|
|
|
3
3
|
|
|
4
4
|
declare const VUE_QUERY_CLIENT = "VUE_QUERY_CLIENT";
|
|
5
5
|
declare function getClientKey(key?: string): string;
|
|
6
|
-
declare function updateState(state: Record<string,
|
|
6
|
+
declare function updateState(state: Record<string, any>, update: Record<string, any>): void;
|
|
7
7
|
declare function cloneDeep<T>(value: MaybeRefDeep<T>, customize?: (val: MaybeRefDeep<T>, key: string, level: number) => T | undefined): T;
|
|
8
8
|
declare function cloneDeepUnref<T>(obj: MaybeRefDeep<T>, unrefGetters?: boolean): T;
|
|
9
9
|
declare function shouldThrowError<T extends (...args: Array<any>) => boolean>(throwOnError: boolean | T | undefined, params: Parameters<T>): boolean;
|
package/build/modern/utils.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import 'vue-demi';
|
|
|
3
3
|
|
|
4
4
|
declare const VUE_QUERY_CLIENT = "VUE_QUERY_CLIENT";
|
|
5
5
|
declare function getClientKey(key?: string): string;
|
|
6
|
-
declare function updateState(state: Record<string,
|
|
6
|
+
declare function updateState(state: Record<string, any>, update: Record<string, any>): void;
|
|
7
7
|
declare function cloneDeep<T>(value: MaybeRefDeep<T>, customize?: (val: MaybeRefDeep<T>, key: string, level: number) => T | undefined): T;
|
|
8
8
|
declare function cloneDeepUnref<T>(obj: MaybeRefDeep<T>, unrefGetters?: boolean): T;
|
|
9
9
|
declare function shouldThrowError<T extends (...args: Array<any>) => boolean>(throwOnError: boolean | T | undefined, params: Parameters<T>): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { isRef, unref } from 'vue-demi'\nimport type { MaybeRefDeep } from './types'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function updateState(\n state: Record<string,
|
|
1
|
+
{"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { isRef, unref } from 'vue-demi'\nimport type { MaybeRefDeep } from './types'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function updateState(\n state: Record<string, any>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\n// Helper function for cloning deep objects where\n// the level and key is provided to the callback function.\nfunction _cloneDeep<T>(\n value: MaybeRefDeep<T>,\n customize?: (\n val: MaybeRefDeep<T>,\n key: string,\n level: number,\n ) => T | undefined,\n currentKey: string = '',\n currentLevel: number = 0,\n): T {\n if (customize) {\n const result = customize(value, currentKey, currentLevel)\n if (result === undefined && isRef(value)) {\n return result as T\n }\n if (result !== undefined) {\n return result\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val, index) =>\n _cloneDeep(val, customize, String(index), currentLevel + 1),\n ) as unknown as T\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n _cloneDeep(val, customize, key, currentLevel + 1),\n ])\n return Object.fromEntries(entries)\n }\n\n return value as T\n}\n\nexport function cloneDeep<T>(\n value: MaybeRefDeep<T>,\n customize?: (\n val: MaybeRefDeep<T>,\n key: string,\n level: number,\n ) => T | undefined,\n): T {\n return _cloneDeep(value, customize)\n}\n\nexport function cloneDeepUnref<T>(\n obj: MaybeRefDeep<T>,\n unrefGetters = false,\n): T {\n return cloneDeep(obj, (val, key, level) => {\n // Check if we're at the top level and the key is 'queryKey'\n //\n // If so, take the recursive descent where we resolve\n // getters to values as well as refs.\n if (level === 1 && key === 'queryKey') {\n return cloneDeepUnref(val, true)\n }\n\n // Resolve getters to values if specified.\n if (unrefGetters && isFunction(val)) {\n // Cast due to older TS versions not allowing calling\n // on certain intersection types.\n return cloneDeepUnref((val as Function)(), unrefGetters)\n }\n\n // Unref refs and continue to recurse into the value.\n if (isRef(val)) {\n return cloneDeepUnref(unref(val), unrefGetters)\n }\n\n return undefined\n })\n}\n\n// eslint-disable-next-line @typescript-eslint/no-wrapper-object-types\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n\nfunction isFunction(value: unknown): value is Function {\n return typeof value === 'function'\n}\n\nexport function shouldThrowError<T extends (...args: Array<any>) => boolean>(\n throwOnError: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow throwOnError function to override throwing behavior on a per-error basis\n if (typeof throwOnError === 'function') {\n return throwOnError(...params)\n }\n\n return !!throwOnError\n}\n"],"mappings":";AAAA,SAAS,OAAO,aAAa;AAGtB,IAAM,mBAAmB;AAEzB,SAAS,aAAa,KAAc;AACzC,QAAM,SAAS,MAAM,IAAI,GAAG,KAAK;AACjC,SAAO,GAAG,gBAAgB,GAAG,MAAM;AACrC;AAEO,SAAS,YACd,OACA,QACM;AACN,SAAO,KAAK,KAAK,EAAE,QAAQ,CAAC,QAAQ;AAClC,UAAM,GAAG,IAAI,OAAO,GAAG;AAAA,EACzB,CAAC;AACH;AAIA,SAAS,WACP,OACA,WAKA,aAAqB,IACrB,eAAuB,GACpB;AACH,MAAI,WAAW;AACb,UAAM,SAAS,UAAU,OAAO,YAAY,YAAY;AACxD,QAAI,WAAW,UAAa,MAAM,KAAK,GAAG;AACxC,aAAO;AAAA,IACT;AACA,QAAI,WAAW,QAAW;AACxB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM;AAAA,MAAI,CAAC,KAAK,UACrB,WAAW,KAAK,WAAW,OAAO,KAAK,GAAG,eAAe,CAAC;AAAA,IAC5D;AAAA,EACF;AAEA,MAAI,OAAO,UAAU,YAAY,cAAc,KAAK,GAAG;AACrD,UAAM,UAAU,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM;AAAA,MACxD;AAAA,MACA,WAAW,KAAK,WAAW,KAAK,eAAe,CAAC;AAAA,IAClD,CAAC;AACD,WAAO,OAAO,YAAY,OAAO;AAAA,EACnC;AAEA,SAAO;AACT;AAEO,SAAS,UACd,OACA,WAKG;AACH,SAAO,WAAW,OAAO,SAAS;AACpC;AAEO,SAAS,eACd,KACA,eAAe,OACZ;AACH,SAAO,UAAU,KAAK,CAAC,KAAK,KAAK,UAAU;AAKzC,QAAI,UAAU,KAAK,QAAQ,YAAY;AACrC,aAAO,eAAe,KAAK,IAAI;AAAA,IACjC;AAGA,QAAI,gBAAgB,WAAW,GAAG,GAAG;AAGnC,aAAO,eAAgB,IAAiB,GAAG,YAAY;AAAA,IACzD;AAGA,QAAI,MAAM,GAAG,GAAG;AACd,aAAO,eAAe,MAAM,GAAG,GAAG,YAAY;AAAA,IAChD;AAEA,WAAO;AAAA,EACT,CAAC;AACH;AAGA,SAAS,cAAc,OAAiC;AACtD,MAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,mBAAmB;AAC/D,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,OAAO,eAAe,KAAK;AAC7C,SAAO,cAAc,QAAQ,cAAc,OAAO;AACpD;AAEA,SAAS,WAAW,OAAmC;AACrD,SAAO,OAAO,UAAU;AAC1B;AAEO,SAAS,iBACd,cACA,QACS;AAET,MAAI,OAAO,iBAAiB,YAAY;AACtC,WAAO,aAAa,GAAG,MAAM;AAAA,EAC/B;AAEA,SAAO,CAAC,CAAC;AACX;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/vue-query",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.55.2",
|
|
4
4
|
"description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue",
|
|
5
5
|
"author": "Damian Osipiuk",
|
|
6
6
|
"license": "MIT",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@tanstack/match-sorter-utils": "^8.15.1",
|
|
50
50
|
"@vue/devtools-api": "^6.6.3",
|
|
51
51
|
"vue-demi": "^0.14.10",
|
|
52
|
-
"@tanstack/query-core": "5.
|
|
52
|
+
"@tanstack/query-core": "5.55.2"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@vitejs/plugin-vue": "^5.1.1",
|
package/src/useBaseQuery.ts
CHANGED
|
@@ -2,8 +2,9 @@ import {
|
|
|
2
2
|
computed,
|
|
3
3
|
getCurrentScope,
|
|
4
4
|
onScopeDispose,
|
|
5
|
-
reactive,
|
|
6
5
|
readonly,
|
|
6
|
+
shallowReactive,
|
|
7
|
+
shallowReadonly,
|
|
7
8
|
toRefs,
|
|
8
9
|
watch,
|
|
9
10
|
} from 'vue-demi'
|
|
@@ -105,7 +106,7 @@ export function useBaseQuery<
|
|
|
105
106
|
})
|
|
106
107
|
|
|
107
108
|
const observer = new Observer(client, defaultedOptions.value)
|
|
108
|
-
const state =
|
|
109
|
+
const state = shallowReactive(observer.getCurrentResult())
|
|
109
110
|
|
|
110
111
|
let unsubscribe = () => {
|
|
111
112
|
// noop
|
|
@@ -201,7 +202,15 @@ export function useBaseQuery<
|
|
|
201
202
|
},
|
|
202
203
|
)
|
|
203
204
|
|
|
204
|
-
const
|
|
205
|
+
const readonlyState =
|
|
206
|
+
process.env.NODE_ENV === 'production'
|
|
207
|
+
? state
|
|
208
|
+
: // @ts-expect-error
|
|
209
|
+
defaultedOptions.value.shallow
|
|
210
|
+
? shallowReadonly(state)
|
|
211
|
+
: readonly(state)
|
|
212
|
+
|
|
213
|
+
const object: any = toRefs(readonlyState)
|
|
205
214
|
for (const key in state) {
|
|
206
215
|
if (typeof state[key as keyof typeof state] === 'function') {
|
|
207
216
|
object[key] = state[key as keyof typeof state]
|
package/src/useInfiniteQuery.ts
CHANGED
package/src/useMutation.ts
CHANGED
|
@@ -2,8 +2,9 @@ import {
|
|
|
2
2
|
computed,
|
|
3
3
|
getCurrentScope,
|
|
4
4
|
onScopeDispose,
|
|
5
|
-
reactive,
|
|
6
5
|
readonly,
|
|
6
|
+
shallowReactive,
|
|
7
|
+
shallowReadonly,
|
|
7
8
|
toRefs,
|
|
8
9
|
watch,
|
|
9
10
|
} from 'vue-demi'
|
|
@@ -26,12 +27,17 @@ type MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<
|
|
|
26
27
|
'mutate' | 'reset'
|
|
27
28
|
>
|
|
28
29
|
|
|
30
|
+
type UseMutationOptionsBase<TData, TError, TVariables, TContext> =
|
|
31
|
+
MutationObserverOptions<TData, TError, TVariables, TContext> & {
|
|
32
|
+
shallow?: boolean
|
|
33
|
+
}
|
|
34
|
+
|
|
29
35
|
export type UseMutationOptions<
|
|
30
36
|
TData = unknown,
|
|
31
37
|
TError = DefaultError,
|
|
32
38
|
TVariables = void,
|
|
33
39
|
TContext = unknown,
|
|
34
|
-
> = MaybeRefDeep<
|
|
40
|
+
> = MaybeRefDeep<UseMutationOptionsBase<TData, TError, TVariables, TContext>>
|
|
35
41
|
|
|
36
42
|
type MutateSyncFunction<
|
|
37
43
|
TData = unknown,
|
|
@@ -61,7 +67,7 @@ export function useMutation<
|
|
|
61
67
|
TContext = unknown,
|
|
62
68
|
>(
|
|
63
69
|
mutationOptions: MaybeRefDeep<
|
|
64
|
-
|
|
70
|
+
UseMutationOptionsBase<TData, TError, TVariables, TContext>
|
|
65
71
|
>,
|
|
66
72
|
queryClient?: QueryClient,
|
|
67
73
|
): UseMutationReturnType<TData, TError, TVariables, TContext> {
|
|
@@ -78,7 +84,7 @@ export function useMutation<
|
|
|
78
84
|
return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))
|
|
79
85
|
})
|
|
80
86
|
const observer = new MutationObserver(client, options.value)
|
|
81
|
-
const state =
|
|
87
|
+
const state = shallowReactive(observer.getCurrentResult())
|
|
82
88
|
|
|
83
89
|
const unsubscribe = observer.subscribe((result) => {
|
|
84
90
|
updateState(state, result)
|
|
@@ -101,7 +107,14 @@ export function useMutation<
|
|
|
101
107
|
unsubscribe()
|
|
102
108
|
})
|
|
103
109
|
|
|
104
|
-
const
|
|
110
|
+
const readonlyState =
|
|
111
|
+
process.env.NODE_ENV === 'production'
|
|
112
|
+
? state
|
|
113
|
+
: options.value.shallow
|
|
114
|
+
? shallowReadonly(state)
|
|
115
|
+
: readonly(state)
|
|
116
|
+
|
|
117
|
+
const resultRefs = toRefs(readonlyState) as ToRefs<
|
|
105
118
|
Readonly<MutationResult<TData, TError, TVariables, TContext>>
|
|
106
119
|
>
|
|
107
120
|
|
package/src/useMutationState.ts
CHANGED
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
computed,
|
|
3
3
|
getCurrentScope,
|
|
4
4
|
onScopeDispose,
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
shallowReadonly,
|
|
6
|
+
shallowRef,
|
|
7
7
|
watch,
|
|
8
8
|
} from 'vue-demi'
|
|
9
9
|
import { useQueryClient } from './useQueryClient'
|
|
10
10
|
import { cloneDeepUnref } from './utils'
|
|
11
|
-
import type {
|
|
11
|
+
import type { Ref } from 'vue-demi'
|
|
12
12
|
import type {
|
|
13
13
|
MutationFilters as MF,
|
|
14
14
|
Mutation,
|
|
@@ -68,10 +68,12 @@ function getResult<TResult = MutationState>(
|
|
|
68
68
|
export function useMutationState<TResult = MutationState>(
|
|
69
69
|
options: MutationStateOptions<TResult> = {},
|
|
70
70
|
queryClient?: QueryClient,
|
|
71
|
-
):
|
|
71
|
+
): Readonly<Ref<Array<TResult>>> {
|
|
72
72
|
const filters = computed(() => cloneDeepUnref(options.filters))
|
|
73
73
|
const mutationCache = (queryClient || useQueryClient()).getMutationCache()
|
|
74
|
-
const state =
|
|
74
|
+
const state = shallowRef(getResult(mutationCache, options)) as Ref<
|
|
75
|
+
Array<TResult>
|
|
76
|
+
>
|
|
75
77
|
const unsubscribe = mutationCache.subscribe(() => {
|
|
76
78
|
const result = getResult(mutationCache, options)
|
|
77
79
|
state.value = result
|
|
@@ -85,5 +87,5 @@ export function useMutationState<TResult = MutationState>(
|
|
|
85
87
|
unsubscribe()
|
|
86
88
|
})
|
|
87
89
|
|
|
88
|
-
return
|
|
90
|
+
return shallowReadonly(state)
|
|
89
91
|
}
|
package/src/useQueries.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
getCurrentScope,
|
|
5
5
|
onScopeDispose,
|
|
6
6
|
readonly,
|
|
7
|
+
shallowReadonly,
|
|
7
8
|
shallowRef,
|
|
8
9
|
unref,
|
|
9
10
|
watch,
|
|
@@ -256,6 +257,7 @@ export function useQueries<
|
|
|
256
257
|
}: {
|
|
257
258
|
queries: MaybeRefDeep<UseQueriesOptionsArg<T>>
|
|
258
259
|
combine?: (result: UseQueriesResults<T>) => TCombinedResult
|
|
260
|
+
shallow?: boolean
|
|
259
261
|
},
|
|
260
262
|
queryClient?: QueryClient,
|
|
261
263
|
): Readonly<Ref<TCombinedResult>> {
|
|
@@ -348,5 +350,9 @@ export function useQueries<
|
|
|
348
350
|
unsubscribe()
|
|
349
351
|
})
|
|
350
352
|
|
|
351
|
-
return
|
|
353
|
+
return process.env.NODE_ENV === 'production'
|
|
354
|
+
? state
|
|
355
|
+
: options.shallow
|
|
356
|
+
? shallowReadonly(state)
|
|
357
|
+
: (readonly(state) as Readonly<Ref<TCombinedResult>>)
|
|
352
358
|
}
|
package/src/useQuery.ts
CHANGED
|
@@ -23,33 +23,37 @@ export type UseQueryOptions<
|
|
|
23
23
|
TData = TQueryFnData,
|
|
24
24
|
TQueryData = TQueryFnData,
|
|
25
25
|
TQueryKey extends QueryKey = QueryKey,
|
|
26
|
-
> = MaybeRef<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
26
|
+
> = MaybeRef<
|
|
27
|
+
{
|
|
28
|
+
[Property in keyof QueryObserverOptions<
|
|
29
|
+
TQueryFnData,
|
|
30
|
+
TError,
|
|
31
|
+
TData,
|
|
32
|
+
TQueryData,
|
|
33
|
+
TQueryKey
|
|
34
|
+
>]: Property extends 'enabled'
|
|
35
|
+
? MaybeRefOrGetter<
|
|
36
|
+
QueryObserverOptions<
|
|
37
|
+
TQueryFnData,
|
|
38
|
+
TError,
|
|
39
|
+
TData,
|
|
40
|
+
TQueryData,
|
|
41
|
+
DeepUnwrapRef<TQueryKey>
|
|
42
|
+
>[Property]
|
|
43
|
+
>
|
|
44
|
+
: MaybeRefDeep<
|
|
45
|
+
QueryObserverOptions<
|
|
46
|
+
TQueryFnData,
|
|
47
|
+
TError,
|
|
48
|
+
TData,
|
|
49
|
+
TQueryData,
|
|
50
|
+
DeepUnwrapRef<TQueryKey>
|
|
51
|
+
>[Property]
|
|
52
|
+
>
|
|
53
|
+
} & {
|
|
54
|
+
shallow?: boolean
|
|
55
|
+
}
|
|
56
|
+
>
|
|
53
57
|
|
|
54
58
|
export type UndefinedInitialQueryOptions<
|
|
55
59
|
TQueryFnData = unknown,
|
package/src/utils.ts
CHANGED