UNPKG

barracuda-client-api

Version:

API Client to connect to Barracuda Enterprise Service Bus

61 lines (60 loc) 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BarracudaBrowserWebSocket = void 0; class BarracudaBrowserWebSocket { constructor(endpoint) { this._endpoint = endpoint; this._ws = new WebSocket(endpoint); } close(code, reason) { this._ws.close(code, reason); } on(eventType, onEvent) { switch (eventType) { case "error": this._ws.onerror = (ev) => onEvent(new Error(ev.toString())); break; case "message": this._ws.onmessage = ev => { onEvent(ev.data); }; break; } } once(eventType, onEvent) { switch (eventType) { case "message": let handledMessage = false; this._ws.addEventListener("message", ev => { if (handledMessage) { return; } handledMessage = true; onEvent(ev.data); }); break; case "open": let handledOpen = false; this._ws.addEventListener("open", ev => { if (handledOpen) { return; } handledOpen = true; onEvent(ev); }); break; case "close": let handledClose = false; this._ws.addEventListener("close", ev => { if (handledClose) { return; } handledClose = true; onEvent(ev.code, ev.reason); }); break; } } send(msg) { this._ws.send(msg); } } exports.BarracudaBrowserWebSocket = BarracudaBrowserWebSocket;