Skip to content

Commit

Permalink
stop reading the stream after 64 kb
Browse files Browse the repository at this point in the history
  • Loading branch information
bjornstar committed Jul 5, 2024
1 parent de5734c commit cbee0ab
Showing 1 changed file with 20 additions and 7 deletions.
27 changes: 20 additions & 7 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,37 @@ isProgressive.buffer = fromBuffer;
isProgressive.stream = readableStream => new Promise((resolve, reject) => {
// The first byte is for the previous last byte if we have multiple data events.
const buffer = new Uint8Array(1 + MAX_BUFFER);
let bytesRead = 0;

const end = () => {
function end() {
resolve(false);
};
}

function cleanup(value) {
resolve(value);
readableStream.removeListener('data', onData);
readableStream.removeListener('end', end);
readableStream.removeListener('error', reject);
}

function onData(data) {
if (bytesRead >= MAX_BUFFER) {
return cleanup(false);
}

readableStream.on('data', data => {
buffer.set(data.subarray(0, MAX_BUFFER), 1);

if (fromBuffer(buffer)) {
resolve(true);
readableStream.removeListener('end', end);
return cleanup(true);
}

bytesRead += data.byteLength;
buffer.set(data.at(-1));
});
}

readableStream.on('error', reject);
readableStream.on('data', onData);
readableStream.on('end', end);
readableStream.on('error', reject);
});

// The metadata section has a maximum size of 65536 bytes
Expand Down

0 comments on commit cbee0ab

Please sign in to comment.