datasquirel/dist/package-shared/functions/dsql/sql/sql-gen-operator-gen.js
Benjamin Toby 82bea3efd0 Updates
2025-08-14 15:16:35 +01:00

88 lines
2.6 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = sqlGenOperatorGen;
const sql_equality_parser_1 = __importDefault(require("../../../utils/sql-equality-parser"));
/**
* # SQL Gen Operator Gen
* @description Generates an SQL operator for node module `mysql` or `serverless-mysql`
*/
function sqlGenOperatorGen({ fieldName, value, equality, }) {
if (value) {
if (equality == "LIKE") {
return {
str: `LOWER(${fieldName}) LIKE LOWER('%${value}%')`,
};
}
else if (equality == "LIKE_RAW") {
return {
str: `LOWER(${fieldName}) LIKE LOWER(?)`,
param: value,
};
}
else if (equality == "NOT LIKE") {
return {
str: `LOWER(${fieldName}) NOT LIKE LOWER('%${value}%')`,
};
}
else if (equality == "NOT LIKE_RAW") {
return {
str: `LOWER(${fieldName}) NOT LIKE LOWER(?)`,
param: value,
};
}
else if (equality == "REGEXP") {
return {
str: `LOWER(${fieldName}) REGEXP LOWER(?')`,
param: value,
};
}
else if (equality == "FULLTEXT") {
return {
str: `MATCH(${fieldName}) AGAINST(? IN BOOLEAN MODE)`,
param: value,
};
}
else if (equality == "NOT EQUAL") {
return {
str: `${fieldName} != ?`,
param: value,
};
}
else if (equality) {
return {
str: `${fieldName} ${(0, sql_equality_parser_1.default)(equality)} ?`,
param: value,
};
}
else {
return {
str: `${fieldName} = ?`,
param: value,
};
}
}
else {
if (equality == "IS NULL") {
return { str: `${fieldName} IS NULL` };
}
else if (equality == "IS NOT NULL") {
return { str: `${fieldName} IS NOT NULL` };
}
else if (equality) {
return {
str: `${fieldName} ${(0, sql_equality_parser_1.default)(equality)} ?`,
param: value,
};
}
else {
return {
str: `${fieldName} = ?`,
param: value,
};
}
}
}