From 300a6d4f9db07bbcd098140e1d9a4af3eebd747f Mon Sep 17 00:00:00 2001 From: Serpentariu13 Date: Thu, 16 Oct 2025 22:02:23 +0300 Subject: [PATCH 1/3] upd(vue-query): Improve queryOptions() type --- packages/vue-query/src/queryOptions.ts | 36 +++++-- packages/vue-query/src/useQuery.ts | 125 ++++++++++++++++++------- 2 files changed, 120 insertions(+), 41 deletions(-) diff --git a/packages/vue-query/src/queryOptions.ts b/packages/vue-query/src/queryOptions.ts index 4681080f8c..6ae9ee7e90 100644 --- a/packages/vue-query/src/queryOptions.ts +++ b/packages/vue-query/src/queryOptions.ts @@ -1,7 +1,11 @@ import type { DataTag, DefaultError, QueryKey } from '@tanstack/query-core' import type { DefinedInitialQueryOptions, + DefinedInitialQueryOptionsBase, + DefinedInitialQueryOptionsRef, UndefinedInitialQueryOptions, + UndefinedInitialQueryOptionsBase, + UndefinedInitialQueryOptionsRef, } from './useQuery' export function queryOptions< @@ -9,23 +13,39 @@ export function queryOptions< TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, + TOptions = DefinedInitialQueryOptions, + TReturnQueryKey = { + queryKey: DataTag + }, >( - options: DefinedInitialQueryOptions, -): DefinedInitialQueryOptions & { - queryKey: DataTag -} + options: TOptions, +): TOptions extends { value: unknown } + ? DefinedInitialQueryOptionsRef & + TOptions + : DefinedInitialQueryOptionsBase & + TOptions export function queryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, + TOptions = UndefinedInitialQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey + > >( - options: UndefinedInitialQueryOptions, -): UndefinedInitialQueryOptions & { - queryKey: DataTag -} + options: TOptions, +): TOptions extends { value: unknown } + ? UndefinedInitialQueryOptionsRef & + TOptions + : UndefinedInitialQueryOptionsBase & + TOptions export function queryOptions(options: unknown) { return options } + + diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts index 3e1e825dcf..1f63ee0094 100644 --- a/packages/vue-query/src/useQuery.ts +++ b/packages/vue-query/src/useQuery.ts @@ -18,65 +18,124 @@ import type { ShallowOption, } from './types' import type { QueryClient } from './queryClient' +import { ComputedRef, Ref } from 'vue' -export type UseQueryOptions< +export type UseQueryOptionsBase< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, -> = MaybeRef< - { - [Property in keyof QueryObserverOptions< +> = { + [Property in keyof QueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryData, + TQueryKey + >]: Property extends 'enabled' + ? + | MaybeRefOrGetter + | (() => Enabled< + TQueryFnData, + TError, + TQueryData, + DeepUnwrapRef + >) + : MaybeRefDeep< + QueryObserverOptions< TQueryFnData, TError, TData, TQueryData, - TQueryKey - >]: Property extends 'enabled' - ? - | MaybeRefOrGetter - | (() => Enabled< - TQueryFnData, - TError, - TQueryData, - DeepUnwrapRef - >) - : MaybeRefDeep< - QueryObserverOptions< - TQueryFnData, - TError, - TData, - TQueryData, - DeepUnwrapRef - >[Property] - > - } & ShallowOption -> + DeepUnwrapRef + >[Property] + > +} & ShallowOption -export type UndefinedInitialQueryOptions< +export type UseQueryOptionsRef< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = + | Ref> + | ComputedRef< + UseQueryOptionsBase + > + +export type UseQueryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = + | UseQueryOptionsBase + | UseQueryOptionsRef + +export type UndefinedInitialQueryOptionsBase< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, -> = UseQueryOptions & { +> = UseQueryOptionsBase & { initialData?: - | undefined - | InitialDataFunction> - | NonUndefinedGuard + | undefined + | InitialDataFunction> + | NonUndefinedGuard } -export type DefinedInitialQueryOptions< +export type UndefinedInitialQueryOptionsRef< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = UseQueryOptionsRef & { + initialData?: + | undefined + | InitialDataFunction> + | NonUndefinedGuard +} + +export type UndefinedInitialQueryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = UndefinedInitialQueryOptionsBase | UndefinedInitialQueryOptionsRef + +export type DefinedInitialQueryOptionsBase< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, -> = UseQueryOptions & { +> = UseQueryOptionsBase & { initialData: - | NonUndefinedGuard + | NonUndefinedGuard + | (() => NonUndefinedGuard) +} + +export type DefinedInitialQueryOptionsRef< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = UseQueryOptionsRef & { + value: UseQueryOptionsRef['value'] & { + initialData: NonUndefinedGuard | (() => NonUndefinedGuard) + } } +export type DefinedInitialQueryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = DefinedInitialQueryOptionsBase | DefinedInitialQueryOptionsRef + export type UseQueryReturnType = UseBaseQueryReturnType< TData, TError From 770930993c4f7261500f262afd026764edf91882 Mon Sep 17 00:00:00 2001 From: Serpentariu13 Date: Thu, 16 Oct 2025 22:10:01 +0300 Subject: [PATCH 2/3] Add changeset --- .changeset/seven-apes-boil.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/seven-apes-boil.md diff --git a/.changeset/seven-apes-boil.md b/.changeset/seven-apes-boil.md new file mode 100644 index 0000000000..5eda74d714 --- /dev/null +++ b/.changeset/seven-apes-boil.md @@ -0,0 +1,5 @@ +--- +'@tanstack/vue-query': patch +--- + +Change UseQueryOptions and its derivatives From 8d3f77a4742dbfcf412383a631e55fdf4d701ce6 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 17 Oct 2025 03:36:25 +0000 Subject: [PATCH 3/3] ci: apply automated fixes --- packages/vue-query/src/queryOptions.ts | 12 ++-- packages/vue-query/src/useQuery.ts | 91 ++++++++++++++++---------- 2 files changed, 62 insertions(+), 41 deletions(-) diff --git a/packages/vue-query/src/queryOptions.ts b/packages/vue-query/src/queryOptions.ts index 6ae9ee7e90..fa0f8401da 100644 --- a/packages/vue-query/src/queryOptions.ts +++ b/packages/vue-query/src/queryOptions.ts @@ -21,9 +21,9 @@ export function queryOptions< options: TOptions, ): TOptions extends { value: unknown } ? DefinedInitialQueryOptionsRef & - TOptions + TOptions : DefinedInitialQueryOptionsBase & - TOptions + TOptions export function queryOptions< TQueryFnData = unknown, @@ -35,17 +35,15 @@ export function queryOptions< TError, TData, TQueryKey - > + >, >( options: TOptions, ): TOptions extends { value: unknown } ? UndefinedInitialQueryOptionsRef & - TOptions + TOptions : UndefinedInitialQueryOptionsBase & - TOptions + TOptions export function queryOptions(options: unknown) { return options } - - diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts index 1f63ee0094..de60dab024 100644 --- a/packages/vue-query/src/useQuery.ts +++ b/packages/vue-query/src/useQuery.ts @@ -34,23 +34,23 @@ export type UseQueryOptionsBase< TQueryData, TQueryKey >]: Property extends 'enabled' - ? - | MaybeRefOrGetter - | (() => Enabled< - TQueryFnData, - TError, - TQueryData, - DeepUnwrapRef - >) - : MaybeRefDeep< - QueryObserverOptions< - TQueryFnData, - TError, - TData, - TQueryData, - DeepUnwrapRef - >[Property] - > + ? + | MaybeRefOrGetter + | (() => Enabled< + TQueryFnData, + TError, + TQueryData, + DeepUnwrapRef + >) + : MaybeRefDeep< + QueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryData, + DeepUnwrapRef + >[Property] + > } & ShallowOption export type UseQueryOptionsRef< @@ -62,8 +62,8 @@ export type UseQueryOptionsRef< > = | Ref> | ComputedRef< - UseQueryOptionsBase - > + UseQueryOptionsBase + > export type UseQueryOptions< TQueryFnData = unknown, @@ -80,11 +80,17 @@ export type UndefinedInitialQueryOptionsBase< TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, -> = UseQueryOptionsBase & { +> = UseQueryOptionsBase< + TQueryFnData, + TError, + TData, + TQueryFnData, + TQueryKey +> & { initialData?: - | undefined - | InitialDataFunction> - | NonUndefinedGuard + | undefined + | InitialDataFunction> + | NonUndefinedGuard } export type UndefinedInitialQueryOptionsRef< @@ -94,9 +100,9 @@ export type UndefinedInitialQueryOptionsRef< TQueryKey extends QueryKey = QueryKey, > = UseQueryOptionsRef & { initialData?: - | undefined - | InitialDataFunction> - | NonUndefinedGuard + | undefined + | InitialDataFunction> + | NonUndefinedGuard } export type UndefinedInitialQueryOptions< @@ -104,17 +110,25 @@ export type UndefinedInitialQueryOptions< TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, -> = UndefinedInitialQueryOptionsBase | UndefinedInitialQueryOptionsRef +> = + | UndefinedInitialQueryOptionsBase + | UndefinedInitialQueryOptionsRef export type DefinedInitialQueryOptionsBase< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, -> = UseQueryOptionsBase & { +> = UseQueryOptionsBase< + TQueryFnData, + TError, + TData, + TQueryFnData, + TQueryKey +> & { initialData: - | NonUndefinedGuard - | (() => NonUndefinedGuard) + | NonUndefinedGuard + | (() => NonUndefinedGuard) } export type DefinedInitialQueryOptionsRef< @@ -123,9 +137,16 @@ export type DefinedInitialQueryOptionsRef< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = UseQueryOptionsRef & { - value: UseQueryOptionsRef['value'] & { - initialData: NonUndefinedGuard - | (() => NonUndefinedGuard) + value: UseQueryOptionsRef< + TQueryFnData, + TError, + TData, + TQueryFnData, + TQueryKey + >['value'] & { + initialData: + | NonUndefinedGuard + | (() => NonUndefinedGuard) } } @@ -134,7 +155,9 @@ export type DefinedInitialQueryOptions< TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, -> = DefinedInitialQueryOptionsBase | DefinedInitialQueryOptionsRef +> = + | DefinedInitialQueryOptionsBase + | DefinedInitialQueryOptionsRef export type UseQueryReturnType = UseBaseQueryReturnType< TData,