diff --git a/index.bs b/index.bs index a80118a..1992e20 100644 --- a/index.bs +++ b/index.bs @@ -147,48 +147,54 @@ However, web developers have to pay attention to the situation when attackers ca ## Gzip-compress a stream ## {#example-gzip-compress-stream} -
++## Deflate-compress an ArrayBuffer to a Uint8Array ## {#example-deflate-compress} -const compressedReadableStream = inputReadableStream.pipeThrough(new CompressionStream('gzip'));+++## Gzip-decompress a Blob to Blob ## {#example-gzip-decompress} -async function compressArrayBuffer(input) { const cs = new CompressionStream('deflate'); + const writer = cs.writable.getWriter(); writer.write(input); writer.close(); + const output = []; - const reader = cs.readable.getReader(); let totalSize = 0; - while (true) { - const { value, done } = await reader.read(); - if (done) - break; + for (const chunk of cs.readable) { output.push(value); totalSize += value.byteLength; } + const concatenated = new Uint8Array(totalSize); let offset = 0; for (const array of output) { concatenated.set(array, offset); offset += array.byteLength; } + return concatenated; }+++function decompressBlob(blob) { const ds = new DecompressionStream('gzip'); const decompressionStream = blob.stream().pipeThrough(ds); return new Response(decompressionStream).blob(); }+Acknowledgments
Thanks to Canon Mukai, Domenic Denicola, and Yutaka Hirano, for their support.