UNPKG

@xtr-dev/zod-rpc

Version:

Simple, type-safe RPC library with Zod validation and automatic TypeScript inference

50 lines 1.79 kB
import { Transport, RPCMessage } from '../types'; /** * WebSocket transport implementation for real-time RPC communication. * Supports automatic reconnection and handles connection lifecycle management. * * @example * ```typescript * // For client connections * const transport = createWebSocketTransport('ws://localhost:8080'); * * // For server connections with existing WebSocket * const transport = createWebSocketTransport(ws, false); // No auto-reconnect * ``` * * @group Transport Layer */ export declare class WebSocketTransport implements Transport { private websocket; private autoReconnect; private messageHandler?; private reconnectAttempts; private maxReconnectAttempts; private reconnectDelay; constructor(websocket: WebSocket, autoReconnect?: boolean); send(message: RPCMessage): Promise<void>; onMessage(handler: (message: RPCMessage) => void): void; connect(): Promise<void>; disconnect(): Promise<void>; isConnected(): boolean; private setupEventHandlers; private attemptReconnect; } /** * Create a WebSocket transport for RPC communication. * Supports both URL strings (for clients) and existing WebSocket instances (for servers). * * @example * ```typescript * // Client usage with URL * const transport = createWebSocketTransport('ws://localhost:8080'); * * // Server usage with existing WebSocket * const transport = createWebSocketTransport(ws, false); * ``` * * @group Transport Layer */ export declare function createWebSocketTransport(url: string, protocols?: string | string[], autoReconnect?: boolean): WebSocketTransport; export declare function createWebSocketTransport(websocket: WebSocket, autoReconnect?: boolean): WebSocketTransport; //# sourceMappingURL=websocket.d.ts.map