@roochnetwork/rooch-sdk-kit
Version:
Rooch SDK Kit
20 lines (19 loc) • 1.25 kB
TypeScript
import type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
import type { RoochClient } from '@roochnetwork/rooch-sdk';
import type { PartialBy } from '../../types/index.js';
export type RpcMethodName = {
[K in keyof RoochClient]: RoochClient[K] extends ((input: any) => Promise<any>) | (() => Promise<any>) ? K : never;
}[keyof RoochClient];
export type RpcMethods = {
[K in RpcMethodName]: RoochClient[K] extends (input: infer P) => Promise<infer R> ? {
name: K;
result: R;
params: P;
} : RoochClient[K] extends () => Promise<infer R> ? {
name: K;
result: R;
params: undefined | object;
} : never;
};
export type UseRoochClientQueryOptions<T extends keyof RpcMethods, TData> = PartialBy<Omit<UseQueryOptions<RpcMethods[T]['result'], Error, TData, unknown[]>, 'queryFn'>, 'queryKey'>;
export declare function useRoochClientQuery<T extends keyof RpcMethods, TData = RpcMethods[T]['result']>(...args: undefined extends RpcMethods[T]['params'] ? [method: T, params?: RpcMethods[T]['params'], options?: UseRoochClientQueryOptions<T, TData>] : [method: T, params: RpcMethods[T]['params'], options?: UseRoochClientQueryOptions<T, TData>]): UseQueryResult<TData, Error>;