This commit is contained in:
Benjamin Toby 2025-10-21 12:08:50 +01:00
parent b81948d2c1
commit e6b4b09277
6 changed files with 45 additions and 9 deletions

View File

@ -1,8 +1,11 @@
import { ServerQueryEqualities } from "../../../types"; import { ServerQueryEqualities, ServerQueryObject } from "../../../types";
type Params = { type Params = {
fieldName: string; fieldName: string;
value?: string; value?: string;
equality?: (typeof ServerQueryEqualities)[number]; equality?: (typeof ServerQueryEqualities)[number];
queryObj: ServerQueryObject<{
[key: string]: any;
}, string>;
}; };
type Return = { type Return = {
str?: string; str?: string;
@ -12,5 +15,5 @@ type Return = {
* # SQL Gen Operator Gen * # SQL Gen Operator Gen
* @description Generates an SQL operator for node module `mysql` or `serverless-mysql` * @description Generates an SQL operator for node module `mysql` or `serverless-mysql`
*/ */
export default function sqlGenOperatorGen({ fieldName, value, equality, }: Params): Return; export default function sqlGenOperatorGen({ fieldName, value, equality, queryObj, }: Params): Return;
export {}; export {};

View File

@ -9,7 +9,13 @@ const sql_equality_parser_1 = __importDefault(require("../../../utils/sql-equali
* # SQL Gen Operator Gen * # SQL Gen Operator Gen
* @description Generates an SQL operator for node module `mysql` or `serverless-mysql` * @description Generates an SQL operator for node module `mysql` or `serverless-mysql`
*/ */
function sqlGenOperatorGen({ fieldName, value, equality, }) { function sqlGenOperatorGen({ fieldName, value, equality, queryObj, }) {
if (queryObj.nullValue) {
return { str: `${fieldName} IS NULL` };
}
if (queryObj.notNullValue) {
return { str: `${fieldName} IS NOT NULL` };
}
if (value) { if (value) {
if (equality == "MATCH") { if (equality == "MATCH") {
return { return {

View File

@ -38,11 +38,14 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) {
return; return;
const valueString = typeof valueParsed == "string" const valueString = typeof valueParsed == "string"
? valueParsed ? valueParsed
: (_a = valueParsed.value) === null || _a === void 0 ? void 0 : _a.toString(); : valueParsed
? (_a = valueParsed.value) === null || _a === void 0 ? void 0 : _a.toString()
: undefined;
const valueEquality = typeof valueParsed == "object" const valueEquality = typeof valueParsed == "object"
? valueParsed.equality || queryObj.equality ? valueParsed.equality || queryObj.equality
: queryObj.equality; : queryObj.equality;
const operatorStrParam = (0, sql_gen_operator_gen_1.default)({ const operatorStrParam = (0, sql_gen_operator_gen_1.default)({
queryObj,
equality: valueEquality, equality: valueEquality,
fieldName: finalFieldName || "", fieldName: finalFieldName || "",
value: (valueString === null || valueString === void 0 ? void 0 : valueString.toString()) || "", value: (valueString === null || valueString === void 0 ? void 0 : valueString.toString()) || "",
@ -58,11 +61,14 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) {
str = "(" + strArray.join(` ${queryObj.operator || "AND"} `) + ")"; str = "(" + strArray.join(` ${queryObj.operator || "AND"} `) + ")";
} }
else { else {
const valueParsed = String(queryObj.value); const valueParsed = queryObj.value
? String(queryObj.value)
: undefined;
const operatorStrParam = (0, sql_gen_operator_gen_1.default)({ const operatorStrParam = (0, sql_gen_operator_gen_1.default)({
equality: queryObj.equality, equality: queryObj.equality,
fieldName: finalFieldName || "", fieldName: finalFieldName || "",
value: valueParsed, value: valueParsed,
queryObj,
}); });
if (operatorStrParam.str && operatorStrParam.param) { if (operatorStrParam.str && operatorStrParam.param) {
str = operatorStrParam.str; str = operatorStrParam.str;

View File

@ -1,10 +1,16 @@
import sqlEqualityParser from "../../../utils/sql-equality-parser"; import sqlEqualityParser from "../../../utils/sql-equality-parser";
import { ServerQueryEqualities } from "../../../types"; import { ServerQueryEqualities, ServerQueryObject } from "../../../types";
type Params = { type Params = {
fieldName: string; fieldName: string;
value?: string; value?: string;
equality?: (typeof ServerQueryEqualities)[number]; equality?: (typeof ServerQueryEqualities)[number];
queryObj: ServerQueryObject<
{
[key: string]: any;
},
string
>;
}; };
type Return = { type Return = {
@ -20,7 +26,16 @@ export default function sqlGenOperatorGen({
fieldName, fieldName,
value, value,
equality, equality,
queryObj,
}: Params): Return { }: Params): Return {
if (queryObj.nullValue) {
return { str: `${fieldName} IS NULL` };
}
if (queryObj.notNullValue) {
return { str: `${fieldName} IS NOT NULL` };
}
if (value) { if (value) {
if (equality == "MATCH") { if (equality == "MATCH") {
return { return {

View File

@ -67,7 +67,9 @@ export default function sqlGenerator<
const valueString = const valueString =
typeof valueParsed == "string" typeof valueParsed == "string"
? valueParsed ? valueParsed
: valueParsed.value?.toString(); : valueParsed
? valueParsed.value?.toString()
: undefined;
const valueEquality = const valueEquality =
typeof valueParsed == "object" typeof valueParsed == "object"
@ -75,6 +77,7 @@ export default function sqlGenerator<
: queryObj.equality; : queryObj.equality;
const operatorStrParam = sqlGenOperatorGen({ const operatorStrParam = sqlGenOperatorGen({
queryObj,
equality: valueEquality, equality: valueEquality,
fieldName: finalFieldName || "", fieldName: finalFieldName || "",
value: valueString?.toString() || "", value: valueString?.toString() || "",
@ -90,12 +93,15 @@ export default function sqlGenerator<
str = "(" + strArray.join(` ${queryObj.operator || "AND"} `) + ")"; str = "(" + strArray.join(` ${queryObj.operator || "AND"} `) + ")";
} else { } else {
const valueParsed = String(queryObj.value); const valueParsed = queryObj.value
? String(queryObj.value)
: undefined;
const operatorStrParam = sqlGenOperatorGen({ const operatorStrParam = sqlGenOperatorGen({
equality: queryObj.equality, equality: queryObj.equality,
fieldName: finalFieldName || "", fieldName: finalFieldName || "",
value: valueParsed, value: valueParsed,
queryObj,
}); });
if (operatorStrParam.str && operatorStrParam.param) { if (operatorStrParam.str && operatorStrParam.param) {

View File

@ -1,6 +1,6 @@
{ {
"name": "@moduletrace/datasquirel", "name": "@moduletrace/datasquirel",
"version": "5.3.2", "version": "5.3.3",
"description": "Cloud-based SQL data management tool", "description": "Cloud-based SQL data management tool",
"main": "dist/index.js", "main": "dist/index.js",
"bin": { "bin": {