UNPKG

@dvsa/appdev-api-common

Version:

Utils library for common API functionality

31 lines (30 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DataCompression = void 0; const node_zlib_1 = require("node:zlib"); // biome-ignore lint/complexity/noStaticOnlyClass: Valid use case for a static class class DataCompression { /** * Extracts a compressed (in base64) string using gunzip into a JSON object * @template T * @param {string} compressedData * @returns {T} */ static decompress(compressedData) { const gzippedBytes = Buffer.from(compressedData, "base64"); const unzippedJson = (0, node_zlib_1.gunzipSync)(gzippedBytes).toString(); return JSON.parse(unzippedJson); } /** * Compresses (with gzip) a JSON object into a base64 string * @template T * @param {T} data * @returns {string} */ static compress(data) { const jsonString = JSON.stringify(data); const gzippedData = (0, node_zlib_1.gzipSync)(Buffer.from(jsonString)); return gzippedData.toString("base64"); } } exports.DataCompression = DataCompression;