UNPKG

@ghini/kit

Version:

js practical tools to assist efficient development

95 lines (89 loc) 2.71 kB
import data from "./data.js"; // async function zstd_compress(data) { // const compressed = await zstd.compress(data,{level:3}); // return compressed; // } // async function zstd_decompress(compressedData) { // const decompressed = await zstd.decompress(compressedData); // return decompressed; // } /** * @codec */ import { gzip, gunzip, deflate, inflate, br_compress, br_decompress, zstd_compress, zstd_decompress, xpath, xreq, cs, } from "@ghini/kit/dev"; cs(); test(); async function test() { let a0 = data.long; console.log("Original size:", Buffer.from(a0).length, "bytes"); try { let start; console.log("\n=== Testing GZip ==="); console.time('gzip') const gzipped = await gzip(a0); console.timeEnd('gzip') console.log("Compressed size:", gzipped.length, "bytes"); console.time('gzip') const gzipDecoded = await gunzip(gzipped); console.timeEnd('gzip') console.log( "GZip compression ratio:", ((1 - gzipped.length / Buffer.from(a0).length) * 100).toFixed(2) + "%", "GZip test passed:", a0 === gzipDecoded.toString() ); console.log("\n=== Testing Deflate ==="); console.time('Deflate') const deflated = await deflate(a0); console.timeEnd('Deflate') console.log("Compressed size:", deflated.length, "bytes"); console.time('Deflate') const deflateDecoded = await inflate(deflated); console.timeEnd('Deflate') console.log( "Deflate compression ratio:", ((1 - deflated.length / Buffer.from(a0).length) * 100).toFixed(2) + "%", "Deflate test passed:", a0 === deflateDecoded.toString() ); console.log("\n=== Testing br ==="); console.time('br') const br = await br_compress(a0); console.timeEnd('br') console.log("Compressed size:", br.length, "bytes"); console.time('br') const brDecoded = await br_decompress(br); console.timeEnd('br') console.log( "br compression ratio:", ((1 - br.length / Buffer.from(a0).length) * 100).toFixed(2) + "%", "br test passed:", a0 === brDecoded.toString() ); console.log("\n=== Testing zstd ==="); // a0='{a:156484}' console.time("zstd"); const zstd = await zstd_compress(a0); console.timeEnd("zstd"); console.log("Compressed size:", zstd.length, "bytes"); console.time("zstd"); const zstdDecoded = await zstd_decompress(zstd); console.timeEnd("zstd"); console.log( "zstd compression ratio:", ((1 - zstd.length / Buffer.from(a0).length) * 100).toFixed(2) + "%", "zstd test passed:", a0 === zstdDecoded.toString() ); } catch (error) { console.error("Test failed:", error); } }