@ts-rest/react-query
Version:
react-query client integration for @ts-rest
14 lines (13 loc) • 1.36 kB
TypeScript
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>;