You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true }); exports.default = readBuffer;
function readBuffer(pipe, length, callback) { if (length === 0) { callback(null, Buffer.alloc(0)); return; }
let remainingLength = length; const buffers = [];
const readChunk = () => { const onChunk = arg => { let chunk = arg; let overflow;
if (chunk.length > remainingLength) { overflow = chunk.slice(remainingLength); chunk = chunk.slice(0, remainingLength); remainingLength = 0; } else { remainingLength -= chunk.length; }
buffers.push(chunk);
if (remainingLength === 0) { pipe.removeListener('data', onChunk); pipe.pause();
if (overflow) { pipe.unshift(overflow); }
callback(null, Buffer.concat(buffers, length)); } };
pipe.on('data', onChunk); pipe.resume(); };
readChunk(); }
|