barracuda-client-api
Version:
API Client to connect to Barracuda Enterprise Service Bus
61 lines (60 loc) • 1.89 kB
JavaScript
;
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;