Updates
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { SQLDeleteGeneratorParams } from "../../../types";
|
||||
interface SQLDeleteGenReturn {
|
||||
query: string;
|
||||
values: string[];
|
||||
@@ -5,9 +6,5 @@ interface SQLDeleteGenReturn {
|
||||
/**
|
||||
* # SQL Delete Generator
|
||||
*/
|
||||
export default function sqlDeleteGenerator({ tableName, data, dbFullName, }: {
|
||||
data: any;
|
||||
tableName: string;
|
||||
dbFullName?: string;
|
||||
}): SQLDeleteGenReturn | undefined;
|
||||
export default function sqlDeleteGenerator({ tableName, deleteKeyValues, dbFullName, data, }: SQLDeleteGeneratorParams): SQLDeleteGenReturn | undefined;
|
||||
export {};
|
||||
|
||||
@@ -1,26 +1,47 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = sqlDeleteGenerator;
|
||||
import sqlEqualityParser from "../../../utils/sql-equality-parser";
|
||||
/**
|
||||
* # SQL Delete Generator
|
||||
*/
|
||||
function sqlDeleteGenerator({ tableName, data, dbFullName, }) {
|
||||
export default function sqlDeleteGenerator({ tableName, deleteKeyValues, dbFullName, data, }) {
|
||||
const finalDbName = dbFullName ? `${dbFullName}.` : "";
|
||||
try {
|
||||
let queryStr = `DELETE FROM ${finalDbName}${tableName}`;
|
||||
let deleteBatch = [];
|
||||
let queryArr = [];
|
||||
Object.keys(data).forEach((ky) => {
|
||||
deleteBatch.push(`${ky}=?`);
|
||||
queryArr.push(data[ky]);
|
||||
});
|
||||
if (data) {
|
||||
Object.keys(data).forEach((ky) => {
|
||||
let value = data[ky];
|
||||
const parsedValue = typeof value == "number" ? String(value) : value;
|
||||
if (!parsedValue)
|
||||
return;
|
||||
if (parsedValue.match(/%/)) {
|
||||
deleteBatch.push(`${ky} LIKE ?`);
|
||||
queryArr.push(parsedValue);
|
||||
}
|
||||
else {
|
||||
deleteBatch.push(`${ky}=?`);
|
||||
queryArr.push(parsedValue);
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (deleteKeyValues) {
|
||||
deleteKeyValues.forEach((ky) => {
|
||||
let value = ky.value;
|
||||
const parsedValue = typeof value == "number" ? String(value) : value;
|
||||
if (!parsedValue)
|
||||
return;
|
||||
const operator = sqlEqualityParser(ky.operator || "EQUAL");
|
||||
deleteBatch.push(`${ky.key} ${operator} ?`);
|
||||
queryArr.push(parsedValue);
|
||||
});
|
||||
}
|
||||
queryStr += ` WHERE ${deleteBatch.join(" AND ")}`;
|
||||
return {
|
||||
query: queryStr,
|
||||
values: queryArr,
|
||||
};
|
||||
}
|
||||
catch ( /** @type {any} */error) {
|
||||
catch (error) {
|
||||
console.log(`SQL delete gen ERROR: ${error.message}`);
|
||||
return undefined;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
import { ServerQueryEqualities } from "../../../types";
|
||||
type Params = {
|
||||
fieldName: string;
|
||||
value?: string;
|
||||
equality: (typeof ServerQueryEqualities)[number];
|
||||
};
|
||||
/**
|
||||
* # SQL Gen Operator Gen
|
||||
* @description Generates an SQL operator for node module `mysql` or `serverless-mysql`
|
||||
*/
|
||||
export default function sqlGenOperatorGen({ fieldName, value, equality, }: Params): string;
|
||||
export {};
|
||||
@@ -0,0 +1,50 @@
|
||||
import sqlEqualityParser from "../../../utils/sql-equality-parser";
|
||||
/**
|
||||
* # SQL Gen Operator Gen
|
||||
* @description Generates an SQL operator for node module `mysql` or `serverless-mysql`
|
||||
*/
|
||||
export default function sqlGenOperatorGen({ fieldName, value, equality, }) {
|
||||
if (value) {
|
||||
if (equality == "LIKE") {
|
||||
return `LOWER(${fieldName}) LIKE LOWER('%${value}%')`;
|
||||
}
|
||||
else if (equality == "LIKE_RAW") {
|
||||
return `LOWER(${fieldName}) LIKE LOWER('${value}')`;
|
||||
}
|
||||
else if (equality == "NOT LIKE") {
|
||||
return `LOWER(${fieldName}) NOT LIKE LOWER('%${value}%')`;
|
||||
}
|
||||
else if (equality == "NOT LIKE_RAW") {
|
||||
return `LOWER(${fieldName}) NOT LIKE LOWER('${value}')`;
|
||||
}
|
||||
else if (equality == "REGEXP") {
|
||||
return `LOWER(${fieldName}) REGEXP LOWER('${value}')`;
|
||||
}
|
||||
else if (equality == "FULLTEXT") {
|
||||
return `MATCH(${fieldName}) AGAINST('${value}' IN BOOLEAN MODE)`;
|
||||
}
|
||||
else if (equality == "NOT EQUAL") {
|
||||
return `${fieldName} != ${value}`;
|
||||
}
|
||||
else if (equality) {
|
||||
return `${fieldName} ${sqlEqualityParser(equality)} ${value}`;
|
||||
}
|
||||
else {
|
||||
return `${fieldName} = ${value}`;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (equality == "IS NULL") {
|
||||
return `${fieldName} IS NULL`;
|
||||
}
|
||||
else if (equality == "IS NOT NULL") {
|
||||
return `${fieldName} IS NOT NULL`;
|
||||
}
|
||||
else if (equality) {
|
||||
return `${fieldName} ${sqlEqualityParser(equality)} ?`;
|
||||
}
|
||||
else {
|
||||
return `${fieldName} = ?`;
|
||||
}
|
||||
}
|
||||
}
|
||||
+31
-8
@@ -1,11 +1,10 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = sqlGenerator;
|
||||
import sqlEqualityParser from "../../../utils/sql-equality-parser";
|
||||
/**
|
||||
* # SQL Query Generator
|
||||
* @description Generates an SQL Query for node module `mysql` or `serverless-mysql`
|
||||
*/
|
||||
function sqlGenerator({ tableName, genObject, dbFullName, count }) {
|
||||
export default function sqlGenerator({ tableName, genObject, dbFullName, count }) {
|
||||
var _a;
|
||||
const finalQuery = (genObject === null || genObject === void 0 ? void 0 : genObject.query) ? genObject.query : undefined;
|
||||
const queryKeys = finalQuery ? Object.keys(finalQuery) : undefined;
|
||||
const sqlSearhValues = [];
|
||||
@@ -33,19 +32,37 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) {
|
||||
else if (typeof queryObj.value == "string" ||
|
||||
typeof queryObj.value == "number") {
|
||||
const valueParsed = String(queryObj.value);
|
||||
const operator = sqlEqualityParser(queryObj.equality || "EQUAL");
|
||||
if (queryObj.equality == "LIKE") {
|
||||
str = `LOWER(${finalFieldName}) LIKE LOWER('%${valueParsed}%')`;
|
||||
}
|
||||
else if (queryObj.equality == "LIKE_RAW") {
|
||||
str = `LOWER(${finalFieldName}) LIKE LOWER(?)`;
|
||||
sqlSearhValues.push(valueParsed);
|
||||
}
|
||||
else if (queryObj.equality == "NOT LIKE") {
|
||||
str = `LOWER(${finalFieldName}) NOT LIKE LOWER('%${valueParsed}%')`;
|
||||
}
|
||||
else if (queryObj.equality == "NOT LIKE_RAW") {
|
||||
str = `LOWER(${finalFieldName}) NOT LIKE LOWER(?)`;
|
||||
sqlSearhValues.push(valueParsed);
|
||||
}
|
||||
else if (queryObj.equality == "REGEXP") {
|
||||
str = `${finalFieldName} REGEXP '${valueParsed}'`;
|
||||
str = `LOWER(${finalFieldName}) REGEXP LOWER(?)`;
|
||||
sqlSearhValues.push(valueParsed);
|
||||
}
|
||||
else if (queryObj.equality == "FULLTEXT") {
|
||||
str = `MATCH(${finalFieldName}) AGAINST('${valueParsed}' IN BOOLEAN MODE)`;
|
||||
str = `MATCH(${finalFieldName}) AGAINST(? IN BOOLEAN MODE)`;
|
||||
sqlSearhValues.push(valueParsed);
|
||||
}
|
||||
else if (queryObj.equality == "NOT EQUAL") {
|
||||
str = `${finalFieldName} != ?`;
|
||||
sqlSearhValues.push(valueParsed);
|
||||
}
|
||||
else if (queryObj.equality) {
|
||||
str = `${finalFieldName} ${operator} ?`;
|
||||
sqlSearhValues.push(valueParsed);
|
||||
}
|
||||
else {
|
||||
sqlSearhValues.push(valueParsed);
|
||||
}
|
||||
@@ -120,7 +137,7 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) {
|
||||
}
|
||||
else if ((_a = genObject === null || genObject === void 0 ? void 0 : genObject.selectFields) === null || _a === void 0 ? void 0 : _a[0]) {
|
||||
if (genObject.join) {
|
||||
str += ` ${(_b = genObject.selectFields) === null || _b === void 0 ? void 0 : _b.map((fld) => `${finalDbName}${tableName}.${fld}`).join(",")}`;
|
||||
str += ` ${(_b = genObject.selectFields) === null || _b === void 0 ? void 0 : _b.map((fld) => `${finalDbName}${tableName}.${String(fld)}`).join(",")}`;
|
||||
}
|
||||
else {
|
||||
str += ` ${(_c = genObject.selectFields) === null || _c === void 0 ? void 0 : _c.join(",")}`;
|
||||
@@ -207,10 +224,16 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) {
|
||||
const stringOperator = (genObject === null || genObject === void 0 ? void 0 : genObject.searchOperator) || "AND";
|
||||
queryString += ` WHERE ${sqlSearhString.join(` ${stringOperator} `)}`;
|
||||
}
|
||||
if ((genObject === null || genObject === void 0 ? void 0 : genObject.order) && !count)
|
||||
if ((_a = genObject === null || genObject === void 0 ? void 0 : genObject.group) === null || _a === void 0 ? void 0 : _a[0]) {
|
||||
queryString += ` GROUP BY ${genObject.group
|
||||
.map((g) => `\`${g.toString()}\``)
|
||||
.join(",")}`;
|
||||
}
|
||||
if ((genObject === null || genObject === void 0 ? void 0 : genObject.order) && !count) {
|
||||
queryString += ` ORDER BY ${genObject.join
|
||||
? `${finalDbName}${tableName}.${String(genObject.order.field)}`
|
||||
: String(genObject.order.field)} ${genObject.order.strategy}`;
|
||||
}
|
||||
if ((genObject === null || genObject === void 0 ? void 0 : genObject.limit) && !count)
|
||||
queryString += ` LIMIT ${genObject.limit}`;
|
||||
if ((genObject === null || genObject === void 0 ? void 0 : genObject.offset) && !count)
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
"use strict";
|
||||
// @ts-check
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = sqlInsertGenerator;
|
||||
/**
|
||||
* # SQL Insert Generator
|
||||
*/
|
||||
function sqlInsertGenerator({ tableName, data, dbFullName, }) {
|
||||
export default function sqlInsertGenerator({ tableName, data, dbFullName, }) {
|
||||
const finalDbName = dbFullName ? `${dbFullName}.` : "";
|
||||
try {
|
||||
if (Array.isArray(data) && (data === null || data === void 0 ? void 0 : data[0])) {
|
||||
|
||||
Reference in New Issue
Block a user