All files / src/Instance/IO/Wss Connection.ts

76.47% Statements 13/17
50% Branches 6/12
37.5% Functions 3/8
76.47% Lines 13/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69                4x                   2x   2x 2x     2x     2x 2x 2x 1x 1x 1x                                                 1x               1x      
/**
 * WebSocketConnection exported as a Class
 * @module WebSocketConnection
 * @category IO
 * @internal
 */
import Configuration from "../../Configuration";
//get current value
const version = Configuration.get("version");
import WebSocket from "ws";
/**
 * Provides a wrapper for the ws module
 * @class WebSocketConnection
 * @category IO
 */
export class WebSocketConnection {
  private ws: WebSocket;
  constructor(ws: WebSocket) {
    this.ws = ws;
 
    Eif (ws && typeof ws.on === "function") {
      ws.on("message", (message: string) => {
        this.onMessage(message);
      });
      ws.on("message", (message: Buffer) => {
        this.onMessage(message);
      });
      ws.on("error", this.handleError.bind(this));
      ws.on("close", this.handleClose.bind(this));
      if (ws.readyState !== WebSocket.OPEN) {
        ws.on("open", this.handleOpen.bind(this));
      } else Eif (ws.readyState === WebSocket.OPEN) {
        this.handleOpen.call(this);
      }
    }
  }
  /**
   * Method that handles incoming messages
   * @param message - The incoming message, either a string or a Buffer
   */
  private onMessage(message: string): void;
  private onMessage(message: Buffer): void;
  private onMessage(message: string | Buffer): void {
    if (typeof message === "string") {
    } else if (Buffer.isBuffer(message)) {
    }
  }
  /**
   * Method that handles error events
   * @param error - The error that occurred
   */
  private handleError(error: Error) {}
  /**
   * Method that handles Open events
   *
   */
  private handleOpen() {
    this.ws.send(`Balek Version: ${version}`);
  }
  /**
   * Method that handles close events
   * @param code - The WebSocket close code
   */
  private handleClose(code: number) {}
  async isReady() {
    return false;
  }
}