UNPKG

vite-plugin-singlefile-compression

Version:

Compress all assets and embeds them into `dist/index.html`, making it convenient to share as a single HTML file.

25 lines (24 loc) 732 B
import base128 from "base128-ascii"; import zlib from 'zlib'; export function compress(format, buf, useBase128) { const options = { level: zlib.constants.Z_BEST_COMPRESSION, }; let outBuf; switch (format) { case "deflate": outBuf = zlib.deflateSync(buf, options); break; case "deflate-raw": outBuf = zlib.deflateRawSync(buf, options); break; case "gzip": outBuf = zlib.gzipSync(buf, options); break; default: throw `unknown compress format ${format}`; } return useBase128 ? base128.encode(Uint8Array.from(outBuf)).toJSTemplateLiterals() : outBuf.toString('base64'); }