MCPcopy Index your code
hub / github.com/nodejs/node / consume

Method consume

deps/undici/undici.js:15617–15650  ·  view source on GitHub ↗

* Take n bytes from the buffered Buffers * @param {number} n * @returns {Buffer}

(n)

Source from the content-addressed store, hash-verified

15615 * @returns {Buffer}
15616 */
15617 consume(n) {
15618 if (n > this.#byteOffset) {
15619 throw new Error("Called consume() before buffers satiated.");
15620 } else if (n === 0) {
15621 return emptyBuffer;
15622 }
15623 this.#byteOffset -= n;
15624 const first = this.#buffers[0];
15625 if (first.length > n) {
15626 this.#buffers[0] = first.subarray(n, first.length);
15627 return first.subarray(0, n);
15628 } else if (first.length === n) {
15629 return this.#buffers.shift();
15630 } else {
15631 let offset = 0;
15632 const buffer = Buffer.allocUnsafeSlow(n);
15633 while (offset !== n) {
15634 const next = this.#buffers[0];
15635 const length = next.length;
15636 if (length + offset === n) {
15637 buffer.set(this.#buffers.shift(), offset);
15638 break;
15639 } else if (length + offset > n) {
15640 buffer.set(next.subarray(0, n - offset), offset);
15641 this.#buffers[0] = next.subarray(n - offset);
15642 break;
15643 } else {
15644 buffer.set(this.#buffers.shift(), offset);
15645 offset += length;
15646 }
15647 }
15648 return buffer;
15649 }
15650 }
15651 writeFragments(fragment) {
15652 if (this.#maxFragments > 0 && this.#fragments.length === this.#maxFragments) {
15653 failWebsocketConnection(this.#handler, 1008, "Too many message fragments");

Callers 3

setupHandleFunction · 0.45
runMethod · 0.45

Calls 2

shiftMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected