UNPKG

andrade-soulseek-downloader

Version:

Simple, safe Soulseek download library with built-in rate limiting to prevent bans

45 lines 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Peer = void 0; const events_1 = require("events"); const message_factory_1 = require("../message-factory"); const debug = (msg) => { if (process.env.DEBUG?.includes('slsk:peer')) { console.log(`[slsk:peer] ${msg}`); } }; class Peer extends events_1.EventEmitter { conn; peer; constructor(socket, peer) { super(); this.conn = socket; this.peer = peer; this.conn.on('error', error => { debug(`${peer.user} error ${error.code}`); this.emit('disconnect', {}); }); this.conn.on('end', () => { debug(`${peer.user} connection ended`); this.emit('disconnect', {}); }); } transferRequest(file, token) { debug(`Transfer request ${file}`); this.conn.write(message_factory_1.MessageFactory.to.peer.transferRequest(file, token).getBuff()); } setAddress(host, port) { debug(`setAddress for ${this.peer.user}: ${host} ${port}`); this.peer.host = host; this.peer.port = port; } fileSearchResult(files, token, user) { debug(`send FileSearchResult to user ${this.peer.user} with token ${token}`); this.conn.write(message_factory_1.MessageFactory.to.peer.fileSearchResult(files, token, user).getBuff()); } destroy() { this.conn.destroy(); } } exports.Peer = Peer; //# sourceMappingURL=peer.js.map