andrade-soulseek-downloader
Version:
Simple, safe Soulseek download library with built-in rate limiting to prevent bans
31 lines • 923 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Messages = void 0;
const stream_1 = require("stream");
const message_1 = require("./message");
class Messages extends stream_1.Writable {
rest;
_write(chunk, _enc, next) {
this.read(this.rest ? Buffer.concat([this.rest, chunk]) : chunk);
next();
}
read(data) {
if (data.length < 4) {
this.rest = data.slice(0, data.length);
return;
}
const size = data.readUInt32LE();
if (size + 4 <= data.length) {
this.emit('message', new message_1.Message(data.slice(0, size + 4)));
this.read(data.slice(size + 4, data.length));
}
else {
this.rest = data.slice(0, data.length);
}
}
reset() {
this.rest = undefined;
}
}
exports.Messages = Messages;
//# sourceMappingURL=messages.js.map