"use strict"; // @ts-check var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = parseDbResults; const decrypt_1 = __importDefault(require("../dsql/decrypt")); const defaultFieldsRegexp_1 = __importDefault(require("./defaultFieldsRegexp")); /** * Parse Database results * ============================================================================== * @description this function takes a database results array gotten from a DB handler * function, decrypts encrypted fields, and returns an updated array with no encrypted * fields */ function parseDbResults(_a) { return __awaiter(this, arguments, void 0, function* ({ unparsedResults, tableSchema, }) { /** * Declare variables * * @description Declare "results" variable */ let parsedResults = []; try { /** * Declare variables * * @description Declare "results" variable */ for (let pr = 0; pr < unparsedResults.length; pr++) { let result = unparsedResults[pr]; let resultFieldNames = Object.keys(result); for (let i = 0; i < resultFieldNames.length; i++) { const resultFieldName = resultFieldNames[i]; let resultFieldSchema = tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.fields[i]; if (resultFieldName === null || resultFieldName === void 0 ? void 0 : resultFieldName.match(defaultFieldsRegexp_1.default)) { continue; } let value = result[resultFieldName]; if (typeof value !== "number" && !value) { // parsedResults.push(result); continue; } if (resultFieldSchema === null || resultFieldSchema === void 0 ? void 0 : resultFieldSchema.encrypted) { if (value === null || value === void 0 ? void 0 : value.match(/./)) { result[resultFieldName] = (0, decrypt_1.default)({ encryptedString: value, }); } } } parsedResults.push(result); } /** * Declare variables * * @description Declare "results" variable */ return parsedResults; } catch ( /** @type {any} */error) { console.log("ERROR in parseDbResults Function =>", error.message); return unparsedResults; } }); }