UNPKG

trpc-uwebsockets

Version:
46 lines (45 loc) 2.27 kB
import type { TemplatedApp } from 'uWebSockets.js'; import type { AnyRouter } from '@trpc/server'; import { type NodeHTTPCreateContextFnOptions, type NodeHTTPCreateContextOption } from '@trpc/server/adapters/node-http'; import { type HTTPBaseHandlerOptions } from '@trpc/server/http'; import { HttpResponseDecorated } from './fetchCompat'; import { WebSocketConnection } from './websockets'; export interface CreateHandlerOptions<TRouter extends AnyRouter> { /** * Url path prefix where the tRPC server will be registered. * @default '' */ prefix?: string | undefined; /** * Specify if SSL is used. Set to true if your application is served over HTTPS. * @default false */ ssl?: boolean | undefined; /** * Maximum request body size in bytes. If the body is larger than this, the request will be aborted. * Null value allows for unlimited body size. * @default null */ maxBodySize?: number | undefined; trpcOptions: HandlerOptions<TRouter, Request, HttpResponseDecorated>; } export type CreateContextOptions = NodeHTTPCreateContextFnOptions<Request, HttpResponseDecorated> & { /** * Client must be passed along when the context is created. **/ client?: WebSocketConnection | undefined; }; /** * Applies tRPC request handler to uWebSockets app. * @param app - The uWebSockets application. * @param opts - Options for configuring the tRPC request handler. */ export declare function applyRequestHandler<TRouter extends AnyRouter>(app: TemplatedApp, opts: CreateHandlerOptions<TRouter>): void; export type HandlerOptions<TRouter extends AnyRouter, TRequest extends Request, TResponse extends HttpResponseDecorated> = HTTPBaseHandlerOptions<TRouter, TRequest> & NodeHTTPCreateContextOption<TRouter, TRequest, TResponse>; type RequestHandlerOptions<TRouter extends AnyRouter, TRequest extends Request, TResponse extends HttpResponseDecorated> = HandlerOptions<TRouter, TRequest, TResponse> & { req: TRequest; res: TResponse; path: string; }; export declare function uWsRequestHandler<TRouter extends AnyRouter, TRequest extends Request, TResponse extends HttpResponseDecorated>(opts: RequestHandlerOptions<TRouter, TRequest, TResponse>): Promise<void>; export {};