///
import { encode } from "@msgpack/msgpack";
async function compress(data: unknown): Promise {
const input = new Blob([encode(data)]).stream();
const gzip = new CompressionStream("gzip");
const response = new Response(input.pipeThrough(gzip));
return new Uint8Array(await response.arrayBuffer());
}
self.addEventListener("message", async ev => {
try {
const result = await compress(ev.data);
self.postMessage({ result, error: null }, [result.buffer]);
} catch (err) {
self.postMessage({ result: null, error: err });
}
});