UNPKG

ts-logs

Version:

This package provide a skd for audit and manager logs in nodejs and express

71 lines 2.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DecryptData = void 0; const decrypt_util_1 = require("./decrypt.util"); const DecryptData = async (data, keys, secret) => { if (data && typeof data === 'string') { return (0, decrypt_util_1.default)(data, secret); } if (data && Array.isArray(data)) { let result = []; let i = 0; while (data[i]) { const attr = data[i]; const payload = await (0, exports.DecryptData)(attr, keys, secret); result.push(payload); i++; } return result; } if (data && typeof data === 'object') { let result = Object.assign({}, data); const objectKeys = Object.keys(data); let objectKeysIndex = 0; const keysToEncrypt = keys; let keysToDecryptIndex = 0; while (objectKeys[objectKeysIndex]) { const currentObjectKey = objectKeys[objectKeysIndex]; if (!(keysToEncrypt.includes(currentObjectKey))) { const target = data[currentObjectKey]; if (typeof target === 'object') { const subObj = await (0, exports.DecryptData)(target, keys, secret); result = Object.assign({}, result, { [currentObjectKey]: subObj }); objectKeysIndex++; continue; } result = Object.assign({}, result, { [currentObjectKey]: target }); objectKeysIndex++; continue; } while (keysToEncrypt[keysToDecryptIndex]) { const currentRemoveKey = keysToEncrypt[keysToDecryptIndex]; const target = data[currentObjectKey]; const isString = typeof target === 'string'; if (currentRemoveKey === currentObjectKey && isString) { let decrypted = ''; try { decrypted = await (0, decrypt_util_1.default)(target, secret); } catch (error) { decrypted = target; } try { const parseObject = JSON.parse(decrypted); decrypted = parseObject; } catch (error) { decrypted = decrypted; } result = Object.assign({}, result, { [currentObjectKey]: decrypted }); } keysToDecryptIndex++; } objectKeysIndex++; } return result; } return data; }; exports.DecryptData = DecryptData; exports.default = exports.DecryptData; //# sourceMappingURL=decrypt-data.util.js.map