UNPKG

@roochnetwork/rooch-sdk-kit

Version:
20 lines (19 loc) 1.25 kB
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>;