@whiskeysockets/baileys
Version:
A WebSockets library for interacting with WhatsApp Web
63 lines (62 loc) • 2.33 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WebSocketClient = void 0;
const ws_1 = __importDefault(require("ws"));
const Defaults_1 = require("../../Defaults");
const types_1 = require("./types");
class WebSocketClient extends types_1.AbstractSocketClient {
constructor() {
super(...arguments);
this.socket = null;
}
get isOpen() {
var _a;
return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === ws_1.default.OPEN;
}
get isClosed() {
var _a;
return this.socket === null || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === ws_1.default.CLOSED;
}
get isClosing() {
var _a;
return this.socket === null || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === ws_1.default.CLOSING;
}
get isConnecting() {
var _a;
return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === ws_1.default.CONNECTING;
}
async connect() {
var _a, _b;
if (this.socket) {
return;
}
this.socket = new ws_1.default(this.url, {
origin: Defaults_1.DEFAULT_ORIGIN,
headers: (_a = this.config.options) === null || _a === void 0 ? void 0 : _a.headers,
handshakeTimeout: this.config.connectTimeoutMs,
timeout: this.config.connectTimeoutMs,
agent: this.config.agent,
});
this.socket.setMaxListeners(0);
const events = ['close', 'error', 'upgrade', 'message', 'open', 'ping', 'pong', 'unexpected-response'];
for (const event of events) {
(_b = this.socket) === null || _b === void 0 ? void 0 : _b.on(event, (...args) => this.emit(event, ...args));
}
}
async close() {
if (!this.socket) {
return;
}
this.socket.close();
this.socket = null;
}
send(str, cb) {
var _a;
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.send(str, cb);
return Boolean(this.socket);
}
}
exports.WebSocketClient = WebSocketClient;