This commit is contained in:
2025-10-21 12:08:50 +01:00
parent b81948d2c1
commit e6b4b09277
6 changed files with 45 additions and 9 deletions
@@ -1,10 +1,16 @@
import sqlEqualityParser from "../../../utils/sql-equality-parser";
import { ServerQueryEqualities } from "../../../types";
import { ServerQueryEqualities, ServerQueryObject } from "../../../types";
type Params = {
fieldName: string;
value?: string;
equality?: (typeof ServerQueryEqualities)[number];
queryObj: ServerQueryObject<
{
[key: string]: any;
},
string
>;
};
type Return = {
@@ -20,7 +26,16 @@ export default function sqlGenOperatorGen({
fieldName,
value,
equality,
queryObj,
}: Params): Return {
if (queryObj.nullValue) {
return { str: `${fieldName} IS NULL` };
}
if (queryObj.notNullValue) {
return { str: `${fieldName} IS NOT NULL` };
}
if (value) {
if (equality == "MATCH") {
return {
@@ -67,7 +67,9 @@ export default function sqlGenerator<
const valueString =
typeof valueParsed == "string"
? valueParsed
: valueParsed.value?.toString();
: valueParsed
? valueParsed.value?.toString()
: undefined;
const valueEquality =
typeof valueParsed == "object"
@@ -75,6 +77,7 @@ export default function sqlGenerator<
: queryObj.equality;
const operatorStrParam = sqlGenOperatorGen({
queryObj,
equality: valueEquality,
fieldName: finalFieldName || "",
value: valueString?.toString() || "",
@@ -90,12 +93,15 @@ export default function sqlGenerator<
str = "(" + strArray.join(` ${queryObj.operator || "AND"} `) + ")";
} else {
const valueParsed = String(queryObj.value);
const valueParsed = queryObj.value
? String(queryObj.value)
: undefined;
const operatorStrParam = sqlGenOperatorGen({
equality: queryObj.equality,
fieldName: finalFieldName || "",
value: valueParsed,
queryObj,
});
if (operatorStrParam.str && operatorStrParam.param) {