Comments (3)
It would be convenient to be able to do this in one shot.
That said, the current implementation is flexible.
This is my current usage to compress data for sharing in a URL hash for open checklist
/**
* converts text to gzip compressed hexText
* @param {string} text - a string
* @returns {Promise<string>} gzip compressed hexText
*/
async function compress(text) {
// https://developer.mozilla.org/en-US/docs/Web/API/CompressionStream
const readStream = new Response(text);
const compressedReadableStream = readStream.body.pipeThrough(new CompressionStream("gzip"));
const response = new Response(compressedReadableStream);
const buffer = await response.arrayBuffer();
const compressedHexText = convertBufferToHex(buffer);
return compressedHexText;
}
from compression.
@wandyezj Thank you for your use case.
Using a Response to convert a stream to an array buffer is convenient, but inefficient. See https://wicg.github.io/compression/#example-deflate-compress for a faster way to do it.
from compression.
I'm using the Compression API to encode data for URL fragments, a one-shot method would be really nice to have compared to piping the text through multiple streams to get there.
from compression.
Related Issues (20)
- Compress arraybuffer example HOT 1
- Readable byte stream HOT 2
- Standards home? HOT 19
- Include brotli HOT 16
- Shipping status? (Unity3D use cases) HOT 1
- Blocking APIs in Workers? HOT 1
- Get unused data from end of DecompressionStream? HOT 4
- Support for decompressing multi-member gzip files? HOT 1
- Getting snappy over Snappy
- Handling of trailing data after deflate-raw final block HOT 4
- Use enum for `format` parameter? HOT 4
- Why TypeError instead of DOMException DataError for decompression failure? HOT 3
- Should the spec allow enqueueing on-the-go instead of storing them until the input is exhausted? HOT 1
- zstd support HOT 7
- Resolved Promises of WritableStreamDefaultWriter Methods HOT 1
- On-demand flush HOT 3
- SSL certificate error HOT 2
- The served document is still in W3C style HOT 1
- Conformance should be in terms of Infra
- DecompressionStream should support pull-based decompression HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from compression.