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.
 
 
 
 
 

19 lines
629 B

export class GzipHandler {
constructor(tokenizer) {
this.tokenizer = tokenizer;
}
inflate() {
const tokenizer = this.tokenizer;
return new ReadableStream({
async pull(controller) {
const buffer = new Uint8Array(1024);
const size = await tokenizer.readBuffer(buffer, { mayBeLess: true });
if (size === 0) {
controller.close();
return;
}
controller.enqueue(buffer.subarray(0, size));
}
}).pipeThrough(new DecompressionStream("gzip"));
}
}