UNPKG

@u4/adbkit

Version:

A Typescript client for the Android Debug Bridge.

57 lines 2.16 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const net_1 = __importDefault(require("net")); const socket_1 = __importDefault(require("./socket")); const events_1 = __importDefault(require("events")); class Server extends events_1.default { constructor(client, serial, options) { super(); this.client = client; this.serial = serial; this.options = options; this.connections = []; this.on = (event, listener) => super.on(event, listener); this.off = (event, listener) => super.off(event, listener); this.once = (event, listener) => super.once(event, listener); this.emit = (event, ...args) => super.emit(event, ...args); this.server = net_1.default.createServer({ allowHalfOpen: true, }); this.server.on('error', (err) => this.emit('error', err)); this.server.on('listening', () => this.emit('listening')); this.server.on('close', () => this.emit('close')); this.server.on('connection', (conn) => { const socket = new socket_1.default(this.client, this.serial, conn, this.options); this.connections.push(socket); socket.on('error', (err) => { // 'conn' is guaranteed to get ended return this.emit('error', err); }); socket.once('end', () => { // 'conn' is guaranteed to get ended return (this.connections = this.connections.filter((val) => val !== socket)); }); return this.emit('connection', socket); }); } listen(...args) { this.server.listen(...args); return this; } close() { this.server.close(); return this; } end() { const ref = this.connections; for (let i = 0, len = ref.length; i < len; i++) { ref[i].end(); } return this; } } exports.default = Server; //# sourceMappingURL=server.js.map