in src/debug-adapter/connection.ts [156:185]
private consumeChunk(chunk: Buffer) {
let event: skylark_debugging.DebugEvent = null;
this.append(chunk);
while (true) {
try {
event = skylark_debugging.DebugEvent.decodeDelimited(this.reader);
} catch (err) {
// This occurs if there is a partial message in the buffer; stop reading
// and wait for more data.
return;
}
this.collapse();
// Do the right thing whether the sequence number comes in as either a
// number or a Long (which is an object with separate low/high ints.)
if (event.sequenceNumber.toString() !== "0") {
const handler = this.pendingResolvers.get(
event.sequenceNumber.toString(),
);
if (handler) {
this.pendingResolvers.delete(event.sequenceNumber.toString());
handler(event);
}
} else {
this.emit("event", event);
}
}
}