trpc-webrtc
Version:
A set of TRPC adapters for communication via RTCDataChannel in the browser
25 lines (24 loc) • 1.03 kB
TypeScript
import { AnyRouter, ProcedureType, inferRouterContext, TRPCError, CombinedDataTransformer } from "@trpc/server";
import { TRPCClientOutgoingMessage } from "@trpc/server/rpc";
export declare function parseMessage(obj: unknown, transformer: CombinedDataTransformer): TRPCClientOutgoingMessage;
/**
* Data channel "server" handler
*/
export type DataChannelHandlerOptions<TRouter extends AnyRouter> = {
onError?: (opts: {
error: TRPCError;
type: ProcedureType | "unknown";
path: string | undefined;
input: unknown;
ctx: undefined | inferRouterContext<TRouter>;
}) => void;
createContext?: () => inferRouterContext<TRouter> | Promise<inferRouterContext<TRouter>>;
router: TRouter;
dataChannel: RTCDataChannel;
};
export declare function applyDataChannelHandler<TRouter extends AnyRouter>(opts: DataChannelHandlerOptions<TRouter>): {
/**
* Don't use this, data channels can't be automatically reconnected.
*/
broadcastReconnectNotification: () => never;
};