UNPKG

mole-rpc-transport-tcp

Version:
35 lines (34 loc) 1.26 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TcpTransportServer = void 0; const net_1 = require("net"); const split2_1 = __importDefault(require("split2")); class TcpTransportServer { constructor(opts) { this.opts = opts; this.callback = () => Promise.reject(new Error("no callback")); this.server = net_1.createServer(); this.server.listen(this.opts); this.server.on("connection", (socket) => { socket.pipe(split2_1.default("\n")).on("data", (line) => { void this.callback(line) .then((reply) => { if (typeof reply === "string") { socket.write(`${reply}\n`); } }); }); socket.on("error", () => socket.destroy()); }); } async onData(callback) { this.callback = callback; } close() { return new Promise((resolve) => this.server.close(() => resolve())); } } exports.TcpTransportServer = TcpTransportServer;