ebiggers / libdeflate

Heavily optimized library for DEFLATE/zlib/gzip compression and decompression

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

compression & decompression usage from browser to libdeflate

truongan07 opened this issue · comments

I have a tiny code of javascript works on browser and i want to send compressed/decompressed result to libdeflate to get compatibility ?

(async () => {
  const compression = async item => {
    const compression = new CompressionStream('deflate'), writer = compression.writable.getWriter();
    
      writer.write(item);
      writer.close();
      
      return await new Response(compression.readable).arrayBuffer();
    };

  const decompression = async compress => {
    const decompression = new DecompressionStream('deflate'), writer = decompression.writable.getWriter();
  
      writer.write(compress);
      writer.close();
      
      return await new Response(decompression.readable).arrayBuffer();
  };
	
  const text = 'this is text';
  const encoder = new TextEncoder;
  const compress = await compression(encoder.encode(text));
  
  console.log('compress = ', compress);
  
  // or i want to send compress from browser to libdeflate for decompression ?
  const decompress = await decompression(compress);
  const decoder = new TextDecoder;
  
  console.log('decompress = ', decompress);
  console.log('text = ', decoder.decode(decompress));
})();