UNPKG

r19

Version:

Simple remote procedure calls in TypeScript

18 lines (17 loc) 859 B
import { RPCMiddleware } from "./createRPCMiddleware"; import { ErrorLike } from "./lib/isErrorLike"; export type Procedures = Record<string, Procedure<any> | Record<string, Procedure<any> | Record<string, Procedure<any> | Record<string, Procedure<any> | Record<string, Procedure<any>>>>>>; export type Procedure<TArgs extends any[]> = (...args: TArgs) => unknown | Promise<unknown>; export type ProcedureCallServerArgs = { procedurePath: string[]; procedureArgs: unknown[]; }; export type ProcedureCallServerResponse = { data?: unknown; } | { error: unknown; }; export type ExtractProcedures<TRPCMiddleware extends RPCMiddleware<Procedures>> = TRPCMiddleware extends RPCMiddleware<infer TProcedures> ? TProcedures : never; export type OnErrorEventHandler = (args: { error: ErrorLike; } & ProcedureCallServerArgs) => Promise<void> | void;