UNPKG

@ts-rest/react-query

Version:

react-query client integration for @ts-rest

25 lines (24 loc) 4.08 kB
import { AppRoute, AppRouteFunction, ClientArgs } from '@ts-rest/core'; import { FetchInfiniteQueryOptions, FetchQueryOptions, InfiniteData, QueryKey, QueryClient } from '@tanstack/react-query'; import { TsRestQueryOptions, UseInfiniteQueryOptions, UseInfiniteQueryOptionsWithInitialData, UseInfiniteQueryOptionsWithoutInitialData, UseMutationOptions, UseQueriesOptions, UseQueryOptions, UseQueryOptionsWithInitialData, UseQueryOptionsWithoutInitialData, UseSuspenseInfiniteQueryOptions, UseSuspenseQueriesOptions, UseSuspenseQueryOptions } from './hooks-options'; import { DataResponse, ErrorResponse, RequestData } from './common'; import { DefinedUseInfiniteQueryResult, DefinedUseQueryResult, UseInfiniteQueryResult, UseMutationResult, UseQueriesResult, UseQueryResult, UseSuspenseInfiniteQueryResult, UseSuspenseQueriesResult, UseSuspenseQueryResult } from './hooks-results'; export interface QueryHooks<TAppRoute extends AppRoute, TClientArgs extends ClientArgs, TQueryFnData = DataResponse<TAppRoute>, TError = ErrorResponse<TAppRoute>> { query: AppRouteFunction<TAppRoute, TClientArgs>; useQuery<TData = TQueryFnData>(options: UseQueryOptionsWithInitialData<TAppRoute, TClientArgs, TData>, queryClient?: QueryClient): DefinedUseQueryResult<TAppRoute, TData, TError>; useQuery<TData = TQueryFnData>(options: UseQueryOptionsWithoutInitialData<TAppRoute, TClientArgs, TData>, queryClient?: QueryClient): UseQueryResult<TAppRoute, TData, TError>; useQuery<TData = TQueryFnData>(options: UseQueryOptions<TAppRoute, TClientArgs, TData>, queryClient?: QueryClient): UseQueryResult<TAppRoute, TData, TError>; useSuspenseQuery<TData = TQueryFnData>(options: UseSuspenseQueryOptions<TAppRoute, TClientArgs, TData>, queryClient?: QueryClient): UseSuspenseQueryResult<TAppRoute, TData, TError>; useQueries<T extends Array<any>, TCombinedResult = UseQueriesResult<TAppRoute, T>>(options: UseQueriesOptions<TAppRoute, TClientArgs, T, TCombinedResult>, queryClient?: QueryClient): TCombinedResult; useSuspenseQueries<T extends Array<any>, TCombinedResult = UseSuspenseQueriesResult<TAppRoute, T>>(options: UseSuspenseQueriesOptions<TAppRoute, TClientArgs, T, TCombinedResult>, queryClient?: QueryClient): TCombinedResult; useInfiniteQuery<TData = InfiniteData<TQueryFnData>, TPageParam = unknown>(options: UseInfiniteQueryOptionsWithInitialData<TAppRoute, TClientArgs, TData, TPageParam>, queryClient?: QueryClient): DefinedUseInfiniteQueryResult<TAppRoute, TData, TError>; useInfiniteQuery<TData = InfiniteData<TQueryFnData>, TPageParam = unknown>(options: UseInfiniteQueryOptionsWithoutInitialData<TAppRoute, TClientArgs, TData, TPageParam>, queryClient?: QueryClient): UseInfiniteQueryResult<TAppRoute, TData, TError>; useInfiniteQuery<TData = InfiniteData<TQueryFnData>, TPageParam = unknown>(options: UseInfiniteQueryOptions<TAppRoute, TClientArgs, TData, TPageParam>, queryClient?: QueryClient): UseInfiniteQueryResult<TAppRoute, TData, TError>; useSuspenseInfiniteQuery<TData = InfiniteData<TQueryFnData>, TPageParam = unknown>(options: UseSuspenseInfiniteQueryOptions<TAppRoute, TClientArgs, TData, TPageParam>, queryClient?: QueryClient): UseSuspenseInfiniteQueryResult<TAppRoute, TData, TError>; usePrefetchQuery<TData = TQueryFnData>(options: FetchQueryOptions<TQueryFnData, TError, TData> & TsRestQueryOptions<TAppRoute, TClientArgs>): void; usePrefetchInfiniteQuery<TData = TQueryFnData, TPageParam = unknown>(options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, QueryKey, TPageParam> & TsRestQueryOptions<TAppRoute, TClientArgs>): void; } export interface MutationHooks<TAppRoute extends AppRoute, TClientArgs extends ClientArgs, TData = DataResponse<TAppRoute>, TError = ErrorResponse<TAppRoute>, TVariables = RequestData<TAppRoute, TClientArgs>> { mutate: AppRouteFunction<TAppRoute, TClientArgs>; useMutation<TContext = unknown>(options?: UseMutationOptions<TAppRoute, TClientArgs, TContext>, queryClient?: QueryClient): UseMutationResult<TAppRoute, TClientArgs, TData, TError, TVariables, TContext>; }