From 3ccbd43186b748d268c10f1fc32f9b3983ccb4f9 Mon Sep 17 00:00:00 2001 From: Bart Spaans Date: Tue, 25 Aug 2026 15:24:13 +0200 Subject: [PATCH] fix(vue-query): re-export core filter types --- .changeset/tidy-pandas-fetch.md | 5 +++++ .../src/__tests__/filterTypes.test-d.ts | 22 +++++++++++++++++++ packages/vue-query/src/index.ts | 7 ++++-- packages/vue-query/src/useIsFetching.ts | 8 ++++--- packages/vue-query/src/useMutationState.ts | 12 ++++++---- 5 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 .changeset/tidy-pandas-fetch.md create mode 100644 packages/vue-query/src/__tests__/filterTypes.test-d.ts diff --git a/.changeset/tidy-pandas-fetch.md b/.changeset/tidy-pandas-fetch.md new file mode 100644 index 00000000000..ef6b39a4bb5 --- /dev/null +++ b/.changeset/tidy-pandas-fetch.md @@ -0,0 +1,5 @@ +--- +'@tanstack/vue-query': patch +--- + +Re-export core query and mutation filter types without shadowing them with Vue-specific filter types. diff --git a/packages/vue-query/src/__tests__/filterTypes.test-d.ts b/packages/vue-query/src/__tests__/filterTypes.test-d.ts new file mode 100644 index 00000000000..31fec64ad24 --- /dev/null +++ b/packages/vue-query/src/__tests__/filterTypes.test-d.ts @@ -0,0 +1,22 @@ +import { describe, expectTypeOf, it } from 'vitest' +import type { + MutationFilters as CoreMutationFilters, + QueryFilters as CoreQueryFilters, +} from '@tanstack/query-core' +import type { MutationFilters, QueryFilters } from '../index' + +describe('filter type exports', () => { + it('should re-export core query filters', () => { + expectTypeOf().toEqualTypeOf() + expectTypeOf>().toEqualTypeOf< + CoreQueryFilters + >() + }) + + it('should re-export core mutation filters', () => { + expectTypeOf().toEqualTypeOf() + expectTypeOf< + MutationFilters + >().toEqualTypeOf>() + }) +}) diff --git a/packages/vue-query/src/index.ts b/packages/vue-query/src/index.ts index c58b89cf2a4..14eff727c79 100644 --- a/packages/vue-query/src/index.ts +++ b/packages/vue-query/src/index.ts @@ -44,6 +44,9 @@ export type { export type { UseMutationOptions, UseMutationReturnType } from './useMutation' export type { MutationOptions } from './types' export type { UseQueriesOptions, UseQueriesResults } from './useQueries' -export type { MutationFilters, MutationStateOptions } from './useMutationState' -export type { QueryFilters } from './useIsFetching' +export type { + MutationStateOptions, + UseIsMutatingFilters, +} from './useMutationState' +export type { UseIsFetchingFilters } from './useIsFetching' export type { VueQueryPluginOptions } from './vueQueryPlugin' diff --git a/packages/vue-query/src/useIsFetching.ts b/packages/vue-query/src/useIsFetching.ts index 7f67bbeb91e..f10735c848a 100644 --- a/packages/vue-query/src/useIsFetching.ts +++ b/packages/vue-query/src/useIsFetching.ts @@ -2,14 +2,16 @@ import { getCurrentScope, onScopeDispose, ref, watchEffect } from 'vue-demi' import { useQueryClient } from './useQueryClient' import { cloneDeepUnref } from './utils' import type { Ref } from 'vue-demi' -import type { QueryFilters as QF } from '@tanstack/query-core' +import type { QueryFilters } from '@tanstack/query-core' import type { MaybeRefDeep } from './types' import type { QueryClient } from './queryClient' -export type QueryFilters = MaybeRefDeep | (() => MaybeRefDeep) +export type UseIsFetchingFilters = + | MaybeRefDeep + | (() => MaybeRefDeep) export function useIsFetching( - fetchingFilters: QueryFilters = {}, + fetchingFilters: UseIsFetchingFilters = {}, queryClient?: QueryClient, ): Ref { if (process.env.NODE_ENV === 'development') { diff --git a/packages/vue-query/src/useMutationState.ts b/packages/vue-query/src/useMutationState.ts index 5f55252cdca..51cab201158 100644 --- a/packages/vue-query/src/useMutationState.ts +++ b/packages/vue-query/src/useMutationState.ts @@ -10,18 +10,22 @@ import { useQueryClient } from './useQueryClient' import { cloneDeepUnref } from './utils' import type { Ref } from 'vue-demi' import type { - MutationFilters as MF, Mutation, + MutationFilters, MutationState, } from '@tanstack/query-core' import type { QueryClient } from './queryClient' import type { MaybeRefDeep } from './types' import type { MutationCache } from './mutationCache' -export type MutationFilters = MaybeRefDeep +type VueMutationFilters = MaybeRefDeep + +export type UseIsMutatingFilters = + | VueMutationFilters + | (() => VueMutationFilters) export function useIsMutating( - filters: MutationFilters | (() => MutationFilters) = {}, + filters: UseIsMutatingFilters = {}, queryClient?: QueryClient, ): Ref { if (process.env.NODE_ENV === 'development') { @@ -64,7 +68,7 @@ export type MutationStateOptions< TMutation extends Mutation = MutationTypeFromResult, > = { - filters?: MutationFilters + filters?: VueMutationFilters select?: (mutation: TMutation) => TResult }