UNPKG

ts-logs

Version:

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

58 lines 2.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EncryptData = void 0; const encrypt_util_1 = require("./encrypt.util"); const EncryptData = async (data, keys, secret) => { if (data && typeof data === 'string') { return (0, encrypt_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.EncryptData)(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 keysToEncryptIndex = 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.EncryptData)(target, keys, secret); result = Object.assign({}, result, { [currentObjectKey]: subObj }); objectKeysIndex++; continue; } result = Object.assign({}, result, { [currentObjectKey]: target }); objectKeysIndex++; continue; } while (keysToEncrypt[keysToEncryptIndex]) { const currentRemoveKey = keysToEncrypt[keysToEncryptIndex]; const target = data[currentObjectKey]; if (currentRemoveKey === currentObjectKey) { const value = typeof target === 'string' ? target : JSON.stringify(target); const encrypted = await (0, encrypt_util_1.default)(value, secret); result = Object.assign({}, result, { [currentObjectKey]: encrypted }); } keysToEncryptIndex++; } objectKeysIndex++; } return result; } return data; }; exports.EncryptData = EncryptData; exports.default = exports.EncryptData; //# sourceMappingURL=encrypt-data.util.js.map