@webiny/api-page-builder-so-ddb
Version:
The DynamoDB storage operations Webiny Page Builder API.
42 lines (40 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.decompress = exports.compress = void 0;
var _gzip = require("@webiny/utils/compression/gzip");
const GZIP = "gzip";
const TO_STORAGE_ENCODING = "base64";
const FROM_STORAGE_ENCODING = "utf8";
const convertToBuffer = value => {
if (typeof value === "string") {
return Buffer.from(value, TO_STORAGE_ENCODING);
}
return value;
};
const compress = async data => {
const value = await (0, _gzip.compress)(JSON.stringify(data));
return {
compression: GZIP,
value: value.toString(TO_STORAGE_ENCODING)
};
};
exports.compress = compress;
const decompress = async pageBlock => {
try {
const buf = await (0, _gzip.decompress)(convertToBuffer(pageBlock.content.value));
const value = buf.toString(FROM_STORAGE_ENCODING);
return {
...pageBlock,
content: JSON.parse(value)
};
} catch (ex) {
return {
...pageBlock,
content: null
};
}
};
exports.decompress = decompress;
//# sourceMappingURL=compression.js.map