nathanboktae / robust-websocket

A robust reconnecting WebSocket client for the browser
ISC License
153 stars 24 forks source link

TypeScript types #10

Open AkisArou opened 2 years ago

AkisArou commented 2 years ago

Hello, I will use your lib in a project of mine, and I've implemented some typings. Maybe you can add them if you'd like to!

declare module "robust-websocket" {
  declare class RobustWebSocket {
    constructor(streamUri: string | ((ws: WebSocket) => string), protocols: string[], options?: {
      timeout?: number;
      shouldReconnect?: (event: CloseEvent, ws: WebSocket) => number | boolean;
      automaticOpen?: boolean;
      ignoreConnectivityEvents?: boolean;
    });

    attempts: number;
    reconnects: number;
    readyState: number;
    url: string;
    protocol: string;
    extensions: string;
    bufferedAmount: number;
    binaryType: BinaryType;

    send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;

    close(code?: number, reason?: string): void;

    dispatchEvent(event: Event): boolean;

    addEventListener(type: "open", callback: (event: Event) => void): void;
    addEventListener(type: "close", callback: (event: CloseEvent) => void): void;
    addEventListener(type: "error", callback: (event: Event) => void): void;
    addEventListener(type: "message", callback: (event: MessageEvent) => void): void;

    removeEventListener(type: "open", callback: (event: Event) => void): void;
    removeEventListener(type: "close", callback: (event: CloseEvent) => void): void;
    removeEventListener(type: "error", callback: (event: Event) => void): void;
    removeEventListener(type: "message", callback: (event: MessageEvent) => void): void;
  }
}
nathanboktae commented 2 years ago

I'm more than happy to take a pull request for it!