@openade/fe
Version:
Fatturazione Elettronica - Electronic Invoicing for Sistema di Interscambio (SDI)
42 lines • 1.62 kB
JavaScript
;
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