// @ts-check import decrypt from "../dsql/decrypt"; import defaultFieldsRegexp from "../dsql/default-fields-regexp"; /** * 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 */ export default async function parseDbResults({ 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)) { 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] = decrypt({ 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; } }