UNPKG

kui-shell

Version:

This is the monorepo for Kui, the hybrid command-line/GUI electron-based Kubernetes tool

51 lines 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const debug_1 = require("debug"); const debug = debug_1.default('plugins/bash-like/pty/channel'); class WebSocketChannel { constructor(url, uid, gid) { debug('WebSocketChannel init', url); this.ws = new WebSocket(url); this.uid = uid; this.gid = gid; } close() { debug('closing websocket channel'); this.ws.close(); } send(msg) { const withUser = Object.assign(JSON.parse(msg), { uid: this.uid, gid: this.gid }); return this.ws.send(JSON.stringify(withUser)); } get readyState() { return this.ws.readyState; } removeEventListener(eventType, handler) { this.ws.removeEventListener(eventType, handler); } on(eventType, handler) { switch (eventType) { case 'open': debug('WebSocketChannel: installing onopen handler'); this.ws.addEventListener(eventType, handler); break; case 'message': debug('WebSocketChannel: installing onmessage handler'); this.ws.addEventListener(eventType, message => handler(message.data)); break; case 'error': debug('WebSocketChannel: installing onerror handler'); this.ws.addEventListener(eventType, handler); break; case 'close': debug('WebSocketChannel: installing onclose handler'); this.ws.addEventListener(eventType, handler); break; } } } exports.default = WebSocketChannel; //# sourceMappingURL=websocket-channel.js.map