private consumeChunk()

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);
      }
    }
  }