https://github.com/vigneshshanmugam/compress-payload
Utiliy for compressing and decompressing RUM payload data
https://github.com/vigneshshanmugam/compress-payload
compression decompression payload rum
Last synced: about 1 year ago
JSON representation
Utiliy for compressing and decompressing RUM payload data
- Host: GitHub
- URL: https://github.com/vigneshshanmugam/compress-payload
- Owner: vigneshshanmugam
- License: mit
- Created: 2020-01-13T11:25:10.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-07-21T12:59:34.000Z (almost 6 years ago)
- Last Synced: 2025-03-28T06:51:16.192Z (about 1 year ago)
- Topics: compression, decompression, payload, rum
- Language: JavaScript
- Homepage:
- Size: 7.81 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# compress-payload
Utiliy for compressing and decompressing RUM payload data using Compression and Decompression streams.
This module is based on [Compression Streams specification](https://wicg.github.io/compression/).
## API
```js
import { compress, decompress, view } from "compress-payload";
const payloadObject = {
/*Huge JSON RUM data*/
};
const payload = JSON.stringify(payloadObject);
const compressedBlob = await compress(payload, "gzip");
const decompressedBlob = await decompress(compressedBlob, "gzip");
// View the original payload content
const originalPayload = await view(decompressedBlob);
```
### Fallback for old browsers
As the API is only available in
(https://www.chromestatus.com/features#compression)[Chrome > 80], we can feature
detect and use this library only for non supported browsers.
```js
const isCompressionStreamSupported = typeof CompressionStream === "function";
let payload = JSON.stringify(payloadObject); // uncompressed
if (isCompressionStreamSupported) {
payload = await compress(payload, "gzip");
}
navigator.sendBeacon("/rum/endpoint", payload);
```
##### compress(payload, type)
---
Compress the payload using the `CompressionStream`. `type` denotes either `gzip` or `deflate`. (default - gzip)
##### decompress(blob, type)
---
Decompress the compressed blob data extracted by calling `compress(payload, data)`
##### view(blob)
---
Read the entire contents of the blob interpreted as UTF-8 text.