diff --git a/packages/vue-query/src/queryClient.ts b/packages/vue-query/src/queryClient.ts index c7e02bbdf0..b8d149261a 100644 --- a/packages/vue-query/src/queryClient.ts +++ b/packages/vue-query/src/queryClient.ts @@ -3,6 +3,9 @@ import { QueryClient as QC } from '@tanstack/query-core' import { cloneDeepUnref } from './utils' import { QueryCache } from './queryCache' import { MutationCache } from './mutationCache' +import type { UseQueryOptions } from './useQuery' +import type { Ref } from 'vue-demi' +import type { MaybeRefDeep, NoUnknown, QueryClientConfig } from './types' import type { CancelOptions, DefaultError, @@ -20,7 +23,6 @@ import type { MutationObserverOptions, NoInfer, OmitKeyof, - QueryClientConfig, QueryFilters, QueryKey, QueryObserverOptions, @@ -31,9 +33,6 @@ import type { SetDataOptions, Updater, } from '@tanstack/query-core' -import type { UseQueryOptions } from './useQuery' -import type { Ref } from 'vue-demi' -import type { MaybeRefDeep, NoUnknown } from './types' export class QueryClient extends QC { constructor(config: QueryClientConfig = {}) { diff --git a/packages/vue-query/src/types.ts b/packages/vue-query/src/types.ts index 4a5d82671c..b6ab0ee210 100644 --- a/packages/vue-query/src/types.ts +++ b/packages/vue-query/src/types.ts @@ -1,3 +1,13 @@ +import type { + DefaultError, + DehydrateOptions, + HydrateOptions, + MutationCache, + MutationObserverOptions, + OmitKeyof, + QueryCache, + QueryObserverOptions, +} from '@tanstack/query-core' import type { ComputedRef, Ref, UnwrapRef } from 'vue-demi' type Primitive = string | number | boolean | bigint | symbol | undefined | null @@ -48,3 +58,29 @@ export type DeepUnwrapRef = T extends UnwrapLeaf export type DistributiveOmit = T extends any ? Omit : never + +export interface DefaultOptions { + queries?: OmitKeyof< + QueryObserverOptions, + 'queryKey' | 'queryFn' + > & { + /** + * 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. + */ + shallow?: boolean + } + mutations?: MutationObserverOptions & { + /** + * 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. + */ + shallow?: boolean + } + hydrate?: HydrateOptions['defaultOptions'] + dehydrate?: DehydrateOptions +} + +export interface QueryClientConfig { + queryCache?: QueryCache + mutationCache?: MutationCache + defaultOptions?: DefaultOptions +} diff --git a/packages/vue-query/src/useMutation.ts b/packages/vue-query/src/useMutation.ts index 91aff2655b..e68983106a 100644 --- a/packages/vue-query/src/useMutation.ts +++ b/packages/vue-query/src/useMutation.ts @@ -29,6 +29,9 @@ type MutationResult = DistributiveOmit< type UseMutationOptionsBase = MutationObserverOptions & { + /** + * 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. + */ shallow?: boolean } diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts index af3f1ea31d..a27258c2aa 100644 --- a/packages/vue-query/src/useQuery.ts +++ b/packages/vue-query/src/useQuery.ts @@ -51,6 +51,9 @@ export type UseQueryOptions< >[Property] > } & { + /** + * 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. + */ shallow?: boolean } > diff --git a/packages/vue-query/src/vueQueryPlugin.ts b/packages/vue-query/src/vueQueryPlugin.ts index 47997c0068..04d254ffdb 100644 --- a/packages/vue-query/src/vueQueryPlugin.ts +++ b/packages/vue-query/src/vueQueryPlugin.ts @@ -4,7 +4,7 @@ import { isServer } from '@tanstack/query-core' import { QueryClient } from './queryClient' import { getClientKey } from './utils' import { setupDevtools } from './devtools/devtools' -import type { QueryClientConfig } from '@tanstack/query-core' +import type { QueryClientConfig } from './types' type ClientPersister = (client: QueryClient) => [() => void, Promise]