nostr-websocket-utils
Version:
Robust WebSocket utilities for Nostr applications with automatic reconnection, supporting both ESM and CommonJS. Features channel-based messaging, heartbeat monitoring, message queueing, and comprehensive error handling with type-safe handlers.
52 lines • 1.85 kB
TypeScript
import { EventEmitter } from 'events';
interface WebSocketEventBase {
type: string;
target: WebSocket;
currentTarget: WebSocket;
}
interface WebSocketMessageEvent extends WebSocketEventBase {
data: string | Buffer;
isBinary: boolean;
}
interface WebSocketCloseEvent extends WebSocketEventBase {
code: number;
reason: string;
wasClean: boolean;
}
interface WebSocketErrorEvent extends WebSocketEventBase {
error: Error;
message: string;
}
export declare class ExtendedWsMock extends EventEmitter {
readonly CONNECTING: 0;
readonly OPEN: 1;
readonly CLOSING: 2;
readonly CLOSED: 3;
readyState: 0 | 1 | 2 | 3;
protocol: string;
url: string;
bufferedAmount: number;
extensions: string;
binaryType: 'nodebuffer' | 'arraybuffer' | 'fragments';
isPaused: boolean;
onopen: ((event: WebSocketEventBase) => void) | null;
onclose: ((event: WebSocketCloseEvent) => void) | null;
onerror: ((event: WebSocketErrorEvent) => void) | null;
onmessage: ((event: WebSocketMessageEvent) => void) | null;
constructor();
private bindMethods;
private createWsEvent;
addEventListener(type: string, listener: (event: WebSocketEventBase) => void): void;
removeEventListener(type: string, listener: (event: WebSocketEventBase) => void): void;
send: import("vitest").Mock<(data: string | Buffer) => this>;
ping: import("vitest").Mock<(data?: Buffer | Uint8Array) => this>;
pong: import("vitest").Mock<(data?: Buffer | Uint8Array) => this>;
close: import("vitest").Mock<(code?: number, reason?: string) => this>;
terminate: import("vitest").Mock<() => this>;
pause(): this;
resume(): this;
setMaxListeners(n: number): this;
}
export declare const mockWebSocket: ExtendedWsMock;
export {};
//# sourceMappingURL=extendedWsMock.d.ts.map