From bdeff299cfe55ba860a43aadfb0cf0a59773a4e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciar=C3=A1n=20Curley?= Date: Fri, 8 May 2026 18:13:34 +0100 Subject: [PATCH] feat(preact-query): use new methods for usePrefetchQuery plus tests --- .changeset/cute-cloths-switch.md | 5 +++++ .../src/__tests__/useInfiniteQuery.test-d.tsx | 12 ++++++++++++ .../src/__tests__/usePrefetchQuery.test-d.tsx | 4 +--- packages/preact-query/src/types.ts | 16 ---------------- .../src/usePrefetchInfiniteQuery.tsx | 7 ++++--- packages/preact-query/src/usePrefetchQuery.tsx | 13 +++++++++---- 6 files changed, 31 insertions(+), 26 deletions(-) create mode 100644 .changeset/cute-cloths-switch.md diff --git a/.changeset/cute-cloths-switch.md b/.changeset/cute-cloths-switch.md new file mode 100644 index 00000000000..bce3f14d1df --- /dev/null +++ b/.changeset/cute-cloths-switch.md @@ -0,0 +1,5 @@ +--- +'@tanstack/preact-query': minor +--- + +update usePrefetchQuery to use new methods diff --git a/packages/preact-query/src/__tests__/useInfiniteQuery.test-d.tsx b/packages/preact-query/src/__tests__/useInfiniteQuery.test-d.tsx index b11002c9e2c..cb96b99fa7e 100644 --- a/packages/preact-query/src/__tests__/useInfiniteQuery.test-d.tsx +++ b/packages/preact-query/src/__tests__/useInfiniteQuery.test-d.tsx @@ -39,6 +39,18 @@ describe('pageParam', () => { }) }) + it('initialPageParam should define type of param passed to queryFunctionContext for infiniteQuery', () => { + const queryClient = new QueryClient() + queryClient.infiniteQuery({ + queryKey: ['key'], + queryFn: ({ pageParam }) => { + expectTypeOf(pageParam).toEqualTypeOf() + return Promise.resolve(pageParam) + }, + initialPageParam: 1, + }) + }) + it('initialPageParam should define type of param passed to queryFunctionContext for prefetchInfiniteQuery', () => { const queryClient = new QueryClient() queryClient.prefetchInfiniteQuery({ diff --git a/packages/preact-query/src/__tests__/usePrefetchQuery.test-d.tsx b/packages/preact-query/src/__tests__/usePrefetchQuery.test-d.tsx index 6f5d5102514..29d41f688c2 100644 --- a/packages/preact-query/src/__tests__/usePrefetchQuery.test-d.tsx +++ b/packages/preact-query/src/__tests__/usePrefetchQuery.test-d.tsx @@ -42,18 +42,16 @@ describe('usePrefetchQuery', () => { ) }) - it('should not allow skipToken in queryFn', () => { + it('should allow skipToken in queryFn', () => { assertType( usePrefetchQuery({ queryKey: queryKey(), - // @ts-expect-error queryFn: skipToken, }), ) assertType( usePrefetchQuery({ queryKey: queryKey(), - // @ts-expect-error queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), }), ) diff --git a/packages/preact-query/src/types.ts b/packages/preact-query/src/types.ts index c995a28b08e..8894d40fb6c 100644 --- a/packages/preact-query/src/types.ts +++ b/packages/preact-query/src/types.ts @@ -4,7 +4,6 @@ import type { DefinedInfiniteQueryObserverResult, DefinedQueryObserverResult, DistributiveOmit, - FetchQueryOptions, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, MutateFunction, @@ -45,21 +44,6 @@ export interface UseBaseQueryOptions< subscribed?: boolean } -export interface UsePrefetchQueryOptions< - TQueryFnData = unknown, - TError = DefaultError, - TData = TQueryFnData, - TQueryKey extends QueryKey = QueryKey, -> extends OmitKeyof< - FetchQueryOptions, - 'queryFn' -> { - queryFn?: Exclude< - FetchQueryOptions['queryFn'], - SkipToken - > -} - export type AnyUseQueryOptions = UseQueryOptions export interface UseQueryOptions< TQueryFnData = unknown, diff --git a/packages/preact-query/src/usePrefetchInfiniteQuery.tsx b/packages/preact-query/src/usePrefetchInfiniteQuery.tsx index e408e345220..989779d0112 100644 --- a/packages/preact-query/src/usePrefetchInfiniteQuery.tsx +++ b/packages/preact-query/src/usePrefetchInfiniteQuery.tsx @@ -1,8 +1,9 @@ +import { noop } from '@tanstack/query-core' import type { DefaultError, - FetchInfiniteQueryOptions, QueryClient, QueryKey, + InfiniteQueryExecuteOptions, } from '@tanstack/query-core' import { useQueryClient } from './QueryClientProvider' @@ -14,7 +15,7 @@ export function usePrefetchInfiniteQuery< TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, >( - options: FetchInfiniteQueryOptions< + options: InfiniteQueryExecuteOptions< TQueryFnData, TError, TData, @@ -26,6 +27,6 @@ export function usePrefetchInfiniteQuery< const client = useQueryClient(queryClient) if (!client.getQueryState(options.queryKey)) { - client.prefetchInfiniteQuery(options) + void client.infiniteQuery(options).then(noop).catch(noop) } } diff --git a/packages/preact-query/src/usePrefetchQuery.tsx b/packages/preact-query/src/usePrefetchQuery.tsx index e7a2a346340..b59df2ecf18 100644 --- a/packages/preact-query/src/usePrefetchQuery.tsx +++ b/packages/preact-query/src/usePrefetchQuery.tsx @@ -1,7 +1,12 @@ -import type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core' +import { noop } from '@tanstack/query-core' +import type { + DefaultError, + QueryClient, + QueryKey, + QueryExecuteOptions, +} from '@tanstack/query-core' import { useQueryClient } from './QueryClientProvider' -import type { UsePrefetchQueryOptions } from './types' export function usePrefetchQuery< TQueryFnData = unknown, @@ -9,12 +14,12 @@ export function usePrefetchQuery< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( - options: UsePrefetchQueryOptions, + options: QueryExecuteOptions, queryClient?: QueryClient, ) { const client = useQueryClient(queryClient) if (!client.getQueryState(options.queryKey)) { - client.prefetchQuery(options) + void client.fetchQuery(options).then(noop).catch(noop) } }