import { ServerAuth } from "/js/connect/auth.js"; class ApiMethods { constructor (api) { this.api = api; } async info () { const socket = this.api.socket; const promise = new Promise((rs, rj) => { socket.onmessage = (ev) => { const data = JSON.parse(ev.data).result; rs(data); }; socket.onerror = (err) => rj(err); }); socket.send( JSON.stringify({ method: "info", }), ); return await promise; } } export class ApiSocket { constructor ({ isTLSmode, address, port }) { this.tlsMode = isTLSmode; this.address = address; this.port = port; this.socket = new WebSocket(`${!isTLSmode ? "ws" : "wss"}://${address}:${port}`); this.methods = new ApiMethods(this); } async run () { const socket = this.socket; const promise = new Promise((rs, rj) => { socket.onopen = () => this.methods.info().then(data => rs(data)); socket.onerror = (err) => rj(err); }); return await promise; } }