UNPKG

@mcp-abap-adt/connection

Version:

ABAP connection layer for MCP ABAP ADT server

46 lines 1.87 kB
import type { IWebSocketCloseInfo, IWebSocketConnectOptions, IWebSocketMessageEnvelope, IWebSocketMessageHandler, IWebSocketTransport } from '@mcp-abap-adt/interfaces'; /** * Minimal WS-like instance contract to avoid hard dependency on a specific WS library. */ interface IWebSocketLike { readyState: number; send(data: string): void; close(code?: number, reason?: string): void; onopen: ((event: unknown) => void) | null; onmessage: ((event: { data: unknown; }) => void) | null; onerror: ((event: unknown) => void) | null; onclose: ((event: { code?: number; reason?: string; wasClean?: boolean; }) => void) | null; } interface IWebSocketFactory { create(url: string, protocols?: string | string[], options?: IWebSocketConnectOptions): IWebSocketLike; } export declare class GenericWebSocketTransport implements IWebSocketTransport { private readonly factory; private socket; private messageHandlers; private openHandlers; private errorHandlers; private closeHandlers; constructor(factory: IWebSocketFactory); connect(url: string, options?: IWebSocketConnectOptions): Promise<void>; disconnect(code?: number, reason?: string): Promise<void>; send<T = unknown>(message: IWebSocketMessageEnvelope<T>): Promise<void>; onMessage<T = unknown>(handler: IWebSocketMessageHandler<T>): void; onOpen(handler: () => void | Promise<void>): void; onError(handler: (error: Error) => void | Promise<void>): void; onClose(handler: (info: IWebSocketCloseInfo) => void | Promise<void>): void; isConnected(): boolean; private handleIncomingMessage; private normalizeError; private emitOpen; private emitError; private emitClose; } export type { IWebSocketFactory, IWebSocketLike }; //# sourceMappingURL=GenericWebSocketTransport.d.ts.map