r19
Version:
Simple remote procedure calls in TypeScript
18 lines (17 loc) • 859 B
TypeScript
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;