UNPKG

@ts-rest/react-query

Version:

react-query client integration for @ts-rest

14 lines (13 loc) 1.36 kB
import { AppRoute, AppRouter, Without } from '@ts-rest/core'; import { AppRouteFunctions, AppRouteFunctionsWithQueryClient } from './inner-types'; import { ReactQueryClientArgs } from './types'; /** @deprecated Use `TsRestReactQueryClient` instead */ export type InitClientReturn<T extends AppRouter, TClientArgs extends ReactQueryClientArgs> = UseTsRestQueryClient<T, TClientArgs>; export type TsRestReactQueryClient<T extends AppRouter, TClientArgs extends ReactQueryClientArgs> = { [TKey in keyof T]: T[TKey] extends AppRoute ? Without<AppRouteFunctions<T[TKey], TClientArgs>, never> : T[TKey] extends AppRouter ? TsRestReactQueryClient<T[TKey], TClientArgs> : never; }; export declare const initQueryClient: <T extends AppRouter, TClientArgs extends ReactQueryClientArgs>(router: T, clientArgs: TClientArgs) => TsRestReactQueryClient<T, TClientArgs>; export type UseTsRestQueryClient<T extends AppRouter, TClientArgs extends ReactQueryClientArgs> = { [TKey in keyof T]: T[TKey] extends AppRoute ? Without<AppRouteFunctionsWithQueryClient<T[TKey], TClientArgs>, never> : T[TKey] extends AppRouter ? UseTsRestQueryClient<T[TKey], TClientArgs> : never; }; export declare const useTsRestQueryClient: <T extends AppRouter, TClientArgs extends ReactQueryClientArgs>(client: TsRestReactQueryClient<T, TClientArgs>) => UseTsRestQueryClient<T, TClientArgs>;