UNPKG

@trpc/server

Version:

The tRPC server library

61 lines (60 loc) • 2.4 kB
import { An as BaseHandlerOptions, rr as inferRouterContext, t as Encoder, ur as CreateContextCallback, xi as MaybePromise, zn as AnyRouter } from "./unstable-core-do-not-import-COFs-Qzf.cjs"; import { o as NodeHTTPCreateContextFnOptions } from "./index-DaZHES8r.cjs"; import { IncomingMessage } from "http"; import { WebSocket, WebSocketServer } from "ws"; //#region src/adapters/ws.d.ts /** * @public */ type CreateWSSContextFnOptions = NodeHTTPCreateContextFnOptions<IncomingMessage, WebSocket>; /** * @public */ type CreateWSSContextFn<TRouter extends AnyRouter> = (opts: CreateWSSContextFnOptions) => MaybePromise<inferRouterContext<TRouter>>; type WSConnectionHandlerOptions<TRouter extends AnyRouter> = BaseHandlerOptions<TRouter, IncomingMessage> & CreateContextCallback<inferRouterContext<TRouter>, CreateWSSContextFn<TRouter>>; /** * Web socket server handler */ type WSSHandlerOptions<TRouter extends AnyRouter> = WSConnectionHandlerOptions<TRouter> & { wss: WebSocketServer; prefix?: string; keepAlive?: { /** * Enable heartbeat messages * @default false */ enabled: boolean; /** * Heartbeat interval in milliseconds * @default 30_000 */ pingMs?: number; /** * Terminate the WebSocket if no pong is received after this many milliseconds * @default 5_000 */ pongWaitMs?: number; }; /** * Disable responding to ping messages from the client * **Not recommended** - this is mainly used for testing * @default false */ dangerouslyDisablePong?: boolean; /** * Custom encoder for wire encoding (e.g. custom binary formats) * @default jsonEncoder */ experimental_encoder?: Encoder; }; declare function getWSConnectionHandler<TRouter extends AnyRouter>(opts: WSSHandlerOptions<TRouter>): (client: WebSocket, req: IncomingMessage) => void; /** * Handle WebSocket keep-alive messages */ declare function handleKeepAlive(client: WebSocket, pingMs?: number, pongWaitMs?: number): void; declare function applyWSSHandler<TRouter extends AnyRouter>(opts: WSSHandlerOptions<TRouter>): { broadcastReconnectNotification: () => void; }; //#endregion export { applyWSSHandler as a, WSSHandlerOptions as i, CreateWSSContextFnOptions as n, getWSConnectionHandler as o, WSConnectionHandlerOptions as r, handleKeepAlive as s, CreateWSSContextFn as t }; //# sourceMappingURL=ws-vKuedL9Z.d.cts.map