"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, }; } } }