UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

63 lines 1.81 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NetServer = exports.WebSocketWrapper = exports.WebSocketServerWrapper = void 0; /** * This is just a simple layer to allow me to mock the server's behavior in tests. */ const net_1 = __importDefault(require("net")); const ws_1 = require("ws"); const server_1 = require("./server"); class WebSocketServerWrapper { server; connectHandler; onConnect(handler) { this.connectHandler = handler; } start(port) { this.server = new ws_1.WebSocketServer({ port, maxPayload: 1024 * 1024 * 1024 * 1024 }); server_1.serverLog.info('WebSocket-Server wrapper is active!'); this.server.on('connection', c => this.connectHandler?.(new WebSocketWrapper(c))); } } exports.WebSocketServerWrapper = WebSocketServerWrapper; class WebSocketWrapper { socket; remoteAddress; remotePort; constructor(socket) { this.socket = socket; this.remoteAddress = socket.url; } write(data) { this.socket.send(data); } end() { this.socket.close(); } on(event, listener) { if (event === 'data') { this.socket.on('message', listener); } else { this.socket.on(event, listener); } } } exports.WebSocketWrapper = WebSocketWrapper; class NetServer { server; constructor() { this.server = net_1.default.createServer(); } onConnect(handler) { this.server.on('connection', handler); } start(port) { this.server.listen(port); } } exports.NetServer = NetServer; //# sourceMappingURL=net.js.map