UNPKG

lz-object

Version:

Object value compression

205 lines (204 loc) 10.7 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; exports.__esModule = true; exports.lzObject = exports.checkIf = void 0; var lz_string_1 = __importDefault(require("lz-string")); exports.checkIf = { isObject: function (value) { return !!(value && typeof value === "object" && !Array.isArray(value)); }, isNumber: function (value) { return !isNaN(Number(value)); }, isBoolean: function (value) { if (value === "true" || value === "false" || value === true || value === false) { return true; } }, isString: function (value) { return typeof value === "string"; }, isArray: function (value) { return Array.isArray(value); } }; var findNestedObject = function (object, keyToMatch, valueToMatch) { if (object === void 0) { object = {}; } if (exports.checkIf.isObject(object)) { var entries = Object.entries(object); for (var i = 0; i < entries.length; i += 1) { var _a = entries[i], objectKey = _a[0], objectValue = _a[1]; if (objectKey === keyToMatch && objectValue === valueToMatch) { return object; } if (exports.checkIf.isObject(objectValue)) { var nestedLevel = findNestedObject(objectValue, keyToMatch && keyToMatch, valueToMatch && valueToMatch); if (nestedLevel !== null) { return nestedLevel; } } } } return null; }; exports.lzObject = { compress: function (object, _a) { var _b = _a.output, output = _b === void 0 ? "utf16" : _b; var obj = {}; // object = JSON.parse(JSON.stringify(object)) if (exports.checkIf.isObject(object)) { var entries = Object.entries(object); var compressedValue_1 = undefined; var compressedKey_1 = undefined; var entryArr = entries.map(function (entry, i, arr) { var _a, _b, _c, _d, _e, _f; var _g = [entry[0], entry[1]], objectKey = _g[0], objectValue = _g[1]; if (exports.checkIf.isNumber(objectValue) || exports.checkIf.isBoolean(objectValue)) { objectValue = "".concat(objectValue); } if (exports.checkIf.isObject(objectValue)) { if (output === "utf16") { compressedKey_1 = lz_string_1["default"].compressToUTF16(objectKey); } else if (output === "base64") { compressedKey_1 = lz_string_1["default"].compressToBase64(objectKey); } else if (output === "uri") { compressedKey_1 = lz_string_1["default"].compressToEncodedURIComponent(objectKey); } var nestedLevel = exports.lzObject.compress(objectValue, { output: output }); return _a = {}, _a[objectKey] = nestedLevel, _a; } if (typeof objectValue === "string") { if (output === "utf16") { compressedValue_1 = lz_string_1["default"].compressToUTF16(objectValue); compressedKey_1 = lz_string_1["default"].compressToUTF16(objectKey); if (typeof compressedValue_1 !== "undefined" && typeof compressedKey_1 !== "undefined") { return _b = {}, _b[objectKey] = compressedValue_1, _b; } ; } if (output === "base64") { compressedValue_1 = lz_string_1["default"].compressToBase64(objectValue); compressedKey_1 = lz_string_1["default"].compressToBase64(objectKey); if (typeof compressedValue_1 !== "undefined" && typeof compressedKey_1 !== "undefined") { return _c = {}, _c[objectKey] = compressedValue_1, _c; } ; } if (output === "uri") { compressedValue_1 = lz_string_1["default"].compressToEncodedURIComponent(objectValue); compressedKey_1 = lz_string_1["default"].compressToEncodedURIComponent(objectKey); if (typeof compressedValue_1 !== "undefined" && typeof compressedKey_1 !== "undefined") { return _d = {}, _d[objectKey] = compressedValue_1, _d; } ; } if (output === "uint8array") { compressedValue_1 = lz_string_1["default"].compressToUint8Array(objectValue); compressedKey_1 = lz_string_1["default"].compressToUTF16(objectKey); var indexedObj = {}; if (typeof compressedValue_1 !== "undefined" && typeof compressedKey_1 !== "undefined") { var arr_1 = Array.from(compressedValue_1); for (var i_1 = 0; i_1 < arr_1.length; i_1++) { Object.assign(indexedObj, (_e = {}, _e[i_1] = arr_1[i_1], _e)); } } return _f = {}, _f[objectKey] = indexedObj, _f; } } }); return entryArr.reduce(function (acc, curr, i, arr) { return Object.assign.apply(Object, __spreadArray(__spreadArray([{}], [acc], false), [arr[i]], false)); }); } }, decompress: function (object, _a) { var _b = _a.output, output = _b === void 0 ? "utf16" : _b; var obj = {}; // object = JSON.parse(JSON.stringify(object)) if (exports.checkIf.isObject(object)) { var entries = Object.entries(object); var decompressedValue_1 = undefined; var entryArr = entries.map(function (entry, i, arr) { var _a, _b, _c, _d, _e; var _f = [entry[0], entry[1]], objectKey = _f[0], objectValue = _f[1]; if (output === "uint8array") { if (exports.checkIf.isObject(objectValue) && Object.getOwnPropertyNames(objectValue).includes("0")) { var arr_2 = Object.values(objectValue); var uint8 = Uint8Array.from(arr_2); decompressedValue_1 = lz_string_1["default"].decompressFromUint8Array(uint8); if (typeof decompressedValue_1 !== "undefined") { if (exports.checkIf.isNumber(decompressedValue_1)) { decompressedValue_1 = Number(decompressedValue_1); } if (exports.checkIf.isBoolean(decompressedValue_1)) { decompressedValue_1 = decompressedValue_1 === "true"; } return _a = {}, _a[objectKey] = decompressedValue_1, _a; } } } if (typeof objectValue === "string") { if (output === "utf16") { decompressedValue_1 = lz_string_1["default"].decompressFromUTF16(objectValue); if (typeof decompressedValue_1 !== "undefined") { if (exports.checkIf.isNumber(decompressedValue_1)) { decompressedValue_1 = Number(decompressedValue_1); } if (exports.checkIf.isBoolean(decompressedValue_1)) { decompressedValue_1 = decompressedValue_1 === "true"; } return _b = {}, _b[objectKey] = decompressedValue_1, _b; } ; } if (output === "base64") { decompressedValue_1 = lz_string_1["default"].decompressFromBase64(objectValue); if (typeof decompressedValue_1 !== "undefined") { if (exports.checkIf.isNumber(decompressedValue_1)) { decompressedValue_1 = Number(decompressedValue_1); } if (exports.checkIf.isBoolean(decompressedValue_1)) { decompressedValue_1 = decompressedValue_1 === "true"; } return _c = {}, _c[objectKey] = decompressedValue_1, _c; } ; } if (output === "uri") { decompressedValue_1 = lz_string_1["default"].decompressFromEncodedURIComponent(objectValue); if (typeof decompressedValue_1 !== "undefined") { if (exports.checkIf.isNumber(decompressedValue_1)) { decompressedValue_1 = Number(decompressedValue_1); } if (exports.checkIf.isBoolean(decompressedValue_1)) { decompressedValue_1 = decompressedValue_1 === "true"; } return _d = {}, _d[objectKey] = decompressedValue_1, _d; } ; } } if (exports.checkIf.isObject(objectValue) || !Object.getOwnPropertyNames(objectValue).includes("0")) { var nestedLevel = exports.lzObject.decompress(objectValue, { output: output }); return _e = {}, _e[objectKey] = nestedLevel, _e; } }); return entryArr.reduce(function (acc, curr, i, arr) { return Object.assign.apply(Object, __spreadArray(__spreadArray([{}], [acc], false), [arr[i]], false)); }); } } };