UNPKG

@openade/fe

Version:

Fatturazione Elettronica - Electronic Invoicing for Sistema di Interscambio (SDI)

42 lines 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CompressionService = void 0; const util_1 = require("util"); const zlib_1 = require("zlib"); const gzipAsync = (0, util_1.promisify)(zlib_1.gzip); const gunzipAsync = (0, util_1.promisify)(zlib_1.gunzip); const deflateAsync = (0, util_1.promisify)(zlib_1.deflate); const inflateAsync = (0, util_1.promisify)(zlib_1.inflate); const brotliCompressAsync = (0, util_1.promisify)(zlib_1.brotliCompress); const brotliDecompressAsync = (0, util_1.promisify)(zlib_1.brotliDecompress); class CompressionService { async compress(data, algorithm = 'gzip') { switch (algorithm) { case 'gzip': return gzipAsync(data); case 'deflate': return deflateAsync(data); case 'brotli': return brotliCompressAsync(data); default: throw new Error(`Unsupported compression algorithm: ${algorithm}`); } } async decompress(data, algorithm = 'gzip') { switch (algorithm) { case 'gzip': return gunzipAsync(data); case 'deflate': return inflateAsync(data); case 'brotli': return brotliDecompressAsync(data); default: throw new Error(`Unsupported decompression algorithm: ${algorithm}`); } } getCompressionRatio(original, compressed) { return compressed.length / original.length; } } exports.CompressionService = CompressionService; //# sourceMappingURL=compression.service.js.map