From a96c5266b8449a1e3275e9216dee0e1f9f950227 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Thu, 22 May 2025 10:00:28 +0200 Subject: [PATCH] fix: formatting of Postgres Interval Result --- src/helpers/dynamicQueryBuilder.ts | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/helpers/dynamicQueryBuilder.ts b/src/helpers/dynamicQueryBuilder.ts index 580bbd2..ba8649c 100644 --- a/src/helpers/dynamicQueryBuilder.ts +++ b/src/helpers/dynamicQueryBuilder.ts @@ -272,8 +272,15 @@ export default abstract class DynamicQueryBuilder { }); }); results = tempResults; - } else if (value && typeof value === "object" && !Array.isArray(value) && !(value instanceof Date)) { - const objResults = flatten(value as QueryResult, newKey); + } else if ( + value && + typeof value === "object" && + !Array.isArray(value) && + !(value instanceof Date) && + !(value instanceof Buffer) && + !Object.keys(value).every((k) => ["years", "months", "days"].includes(k)) + ) { + const objResults = flatten(value, newKey); const tempResults: Array<{ [key: string]: FieldType }> = []; results.forEach((res) => { objResults.forEach((objRes) => { @@ -283,7 +290,19 @@ export default abstract class DynamicQueryBuilder { results = tempResults; } else { results.forEach((res) => { - if (String(value) != "undefined") res[newKey] = String(value); + if (typeof value === "object" && value instanceof Date) { + res[newKey] = new Date(value).toISOString(); + } else if (typeof value === "object" && !Array.isArray(value) && !(value instanceof Buffer)) { + let string = ""; + for (const key of Object.keys(value)) { + string += `${value[key]} ${key} `; + } + res[newKey] = string.trim(); + + // JSON.stringify(value).replace(/["\\{}]/g, "").replaceAll(",", ", "); + } else if (String(value) != "undefined") { + res[newKey] = String(value); + } }); } }