rocketrpc
Version:

15 lines (14 loc) • 704 B
TypeScript
import { Socket } from "socket.io-client";
export type PromisifyRecord<T> = {
[K in keyof T]-?: T[K] extends (...args: any[]) => any ? ReturnType<T[K]> extends Promise<any> ? T[K] : (...args: Parameters<T[K]>) => Promise<ReturnType<T[K]>> : T[K] extends object ? PromisifyRecord<T[K]> : never;
} & {
_rocketRpcContext: RocketRPCContext;
};
export default function Client<API extends Record<string | symbol | number, unknown>>(endpoint?: string): PromisifyRecord<API>;
type RocketRPCContext = {
closeConnection: () => void;
/** @deprecated this field might be removed in future versions -
* https://github.com/akash-joshi/rocketrpc/discussions/17 */
socket: Socket;
};
export {};