@orpc/server
Version:
<div align="center"> <image align="center" src="https://orpc.dev/logo.webp" width=280 alt="oRPC logo" /> </div>
57 lines (53 loc) • 2.3 kB
text/typescript
import { MaybeOptionalOptions } from '@orpc/shared';
import { C as Context, R as Router } from '../../shared/server.qKsRrdxW.mjs';
import { f as StandardHandler } from '../../shared/server.BqadksTP.mjs';
import { HandleStandardServerPeerMessageOptions } from '../standard-peer/index.mjs';
import { S as StandardRPCHandlerOptions } from '../../shared/server.ChUyt5-i.mjs';
import '@orpc/client';
import '@orpc/contract';
import '@orpc/standard-server';
import '@orpc/standard-server-peer';
import '../../shared/server.B8gYOD5g.mjs';
import '@orpc/client/standard';
import '../../shared/server.C8_sRzQB.mjs';
type MinimalWebsocket = Pick<WebSocket, 'addEventListener' | 'send'>;
declare class WebsocketHandler<T extends Context> {
#private;
constructor(standardHandler: StandardHandler<T>);
/**
* Upgrades a WebSocket to enable handling
*
* This attaches the necessary 'message' and 'close' listeners to the WebSocket
*
* @warning Do not use this method if you're using `.message()` or `.close()`
*/
upgrade(ws: MinimalWebsocket, ...rest: MaybeOptionalOptions<HandleStandardServerPeerMessageOptions<T>>): void;
/**
* Handles a single message received from a WebSocket.
*
* @warning Avoid calling this directly if `.upgrade()` is used.
*
* @param ws The WebSocket instance
* @param data The message payload, usually place in `event.data`
*/
message(ws: MinimalWebsocket, data: string | ArrayBuffer | Blob, ...rest: MaybeOptionalOptions<HandleStandardServerPeerMessageOptions<T>>): Promise<void>;
/**
* Closes the WebSocket peer and cleans up.
*
* @warning Avoid calling this directly if `.upgrade()` is used.
*/
close(ws: MinimalWebsocket): void;
}
interface RPCHandlerOptions<T extends Context> extends StandardRPCHandlerOptions<T> {
}
/**
* RPC Handler for Websocket adapter
*
* @see {@link https://orpc.dev/docs/rpc-handler RPC Handler Docs}
* @see {@link https://orpc.dev/docs/adapters/websocket Websocket Adapter Docs}
*/
declare class RPCHandler<T extends Context> extends WebsocketHandler<T> {
constructor(router: Router<any, T>, options?: NoInfer<RPCHandlerOptions<T>>);
}
export { RPCHandler, WebsocketHandler };
export type { MinimalWebsocket, RPCHandlerOptions };