Updates
This commit is contained in:
parent
0da68e30b8
commit
ac489ce443
@ -11,7 +11,6 @@ const sql_gen_operator_gen_1 = __importDefault(require("./sql-gen-operator-gen")
|
|||||||
* @description Generates an SQL Query for node module `mysql` or `serverless-mysql`
|
* @description Generates an SQL Query for node module `mysql` or `serverless-mysql`
|
||||||
*/
|
*/
|
||||||
function sqlGenerator({ tableName, genObject, dbFullName, count }) {
|
function sqlGenerator({ tableName, genObject, dbFullName, count }) {
|
||||||
var _a;
|
|
||||||
const finalQuery = (genObject === null || genObject === void 0 ? void 0 : genObject.query) ? genObject.query : undefined;
|
const finalQuery = (genObject === null || genObject === void 0 ? void 0 : genObject.query) ? genObject.query : undefined;
|
||||||
const queryKeys = finalQuery ? Object.keys(finalQuery) : undefined;
|
const queryKeys = finalQuery ? Object.keys(finalQuery) : undefined;
|
||||||
const sqlSearhValues = [];
|
const sqlSearhValues = [];
|
||||||
@ -300,10 +299,37 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) {
|
|||||||
queryString += `${isSearchStr ? " AND" : " WHERE"} ${fullTextMatchStr}`;
|
queryString += `${isSearchStr ? " AND" : " WHERE"} ${fullTextMatchStr}`;
|
||||||
sqlSearhValues.push(fullTextSearchStr);
|
sqlSearhValues.push(fullTextSearchStr);
|
||||||
}
|
}
|
||||||
if ((_a = genObject === null || genObject === void 0 ? void 0 : genObject.group) === null || _a === void 0 ? void 0 : _a[0]) {
|
if (genObject === null || genObject === void 0 ? void 0 : genObject.group) {
|
||||||
queryString += ` GROUP BY ${genObject.group
|
let group_by_txt = ``;
|
||||||
.map((g) => `\`${g.toString()}\``)
|
if (typeof genObject.group == "string") {
|
||||||
.join(",")}`;
|
group_by_txt = genObject.group;
|
||||||
|
}
|
||||||
|
else if (Array.isArray(genObject.group)) {
|
||||||
|
for (let i = 0; i < genObject.group.length; i++) {
|
||||||
|
const group = genObject.group[i];
|
||||||
|
if (typeof group == "string") {
|
||||||
|
group_by_txt += `\`${group.toString()}\``;
|
||||||
|
}
|
||||||
|
else if (typeof group == "object" && group.table) {
|
||||||
|
group_by_txt += `${group.table}.${String(group.field)}`;
|
||||||
|
}
|
||||||
|
else if (typeof group == "object") {
|
||||||
|
group_by_txt += `${String(group.field)}`;
|
||||||
|
}
|
||||||
|
if (i < genObject.group.length - 1) {
|
||||||
|
group_by_txt += ",";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (typeof genObject.group == "object") {
|
||||||
|
if (genObject.group.table) {
|
||||||
|
group_by_txt = `${genObject.group.table}.${String(genObject.group.field)}`;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
group_by_txt = `${String(genObject.group.field)}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
queryString += ` GROUP BY ${group_by_txt}`;
|
||||||
}
|
}
|
||||||
function grabOrderString(order) {
|
function grabOrderString(order) {
|
||||||
let orderFields = [];
|
let orderFields = [];
|
||||||
|
|||||||
12
dist/package-shared/types/index.d.ts
vendored
12
dist/package-shared/types/index.d.ts
vendored
@ -909,18 +909,26 @@ export type ServerQueryParam<T extends {
|
|||||||
limit?: number;
|
limit?: number;
|
||||||
page?: number;
|
page?: number;
|
||||||
offset?: number;
|
offset?: number;
|
||||||
order?: ServerQueryParamOrder | ServerQueryParamOrder[];
|
order?: ServerQueryParamOrder<T> | ServerQueryParamOrder<T>[];
|
||||||
searchOperator?: (typeof ServerQueryOperators)[number];
|
searchOperator?: (typeof ServerQueryOperators)[number];
|
||||||
searchEquality?: (typeof ServerQueryEqualities)[number];
|
searchEquality?: (typeof ServerQueryEqualities)[number];
|
||||||
addUserId?: {
|
addUserId?: {
|
||||||
fieldName: keyof T;
|
fieldName: keyof T;
|
||||||
};
|
};
|
||||||
join?: (ServerQueryParamsJoin<K> | ServerQueryParamsJoin<K>[] | undefined)[];
|
join?: (ServerQueryParamsJoin<K> | ServerQueryParamsJoin<K>[] | undefined)[];
|
||||||
group?: (keyof T)[];
|
group?: keyof T | ServerQueryParamGroupBy<T> | (keyof T | ServerQueryParamGroupBy<T>)[];
|
||||||
countSubQueries?: ServerQueryParamsCount[];
|
countSubQueries?: ServerQueryParamsCount[];
|
||||||
fullTextSearch?: ServerQueryParamFullTextSearch<T>;
|
fullTextSearch?: ServerQueryParamFullTextSearch<T>;
|
||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
};
|
};
|
||||||
|
export type ServerQueryParamGroupBy<T extends {
|
||||||
|
[k: string]: any;
|
||||||
|
} = {
|
||||||
|
[k: string]: any;
|
||||||
|
}> = {
|
||||||
|
field: keyof T;
|
||||||
|
table?: string;
|
||||||
|
};
|
||||||
export type ServerQueryParamOrder<T extends {
|
export type ServerQueryParamOrder<T extends {
|
||||||
[k: string]: any;
|
[k: string]: any;
|
||||||
} = {
|
} = {
|
||||||
|
|||||||
@ -26,7 +26,7 @@ type Return = {
|
|||||||
* @description Generates an SQL Query for node module `mysql` or `serverless-mysql`
|
* @description Generates an SQL Query for node module `mysql` or `serverless-mysql`
|
||||||
*/
|
*/
|
||||||
export default function sqlGenerator<
|
export default function sqlGenerator<
|
||||||
T extends { [key: string]: any } = { [key: string]: any }
|
T extends { [key: string]: any } = { [key: string]: any },
|
||||||
>({ tableName, genObject, dbFullName, count }: Param<T>): Return {
|
>({ tableName, genObject, dbFullName, count }: Param<T>): Return {
|
||||||
const finalQuery = genObject?.query ? genObject.query : undefined;
|
const finalQuery = genObject?.query ? genObject.query : undefined;
|
||||||
|
|
||||||
@ -69,10 +69,10 @@ export default function sqlGenerator<
|
|||||||
typeof valueParsed == "string"
|
typeof valueParsed == "string"
|
||||||
? valueParsed
|
? valueParsed
|
||||||
: valueParsed
|
: valueParsed
|
||||||
? valueParsed.fieldName && valueParsed.tableName
|
? valueParsed.fieldName && valueParsed.tableName
|
||||||
? `${valueParsed.tableName}.${valueParsed.fieldName}`
|
? `${valueParsed.tableName}.${valueParsed.fieldName}`
|
||||||
: valueParsed.value?.toString()
|
: valueParsed.value?.toString()
|
||||||
: undefined;
|
: undefined;
|
||||||
|
|
||||||
const valueEquality =
|
const valueEquality =
|
||||||
typeof valueParsed == "object"
|
typeof valueParsed == "object"
|
||||||
@ -86,8 +86,8 @@ export default function sqlGenerator<
|
|||||||
value: valueString?.toString() || "",
|
value: valueString?.toString() || "",
|
||||||
isValueFieldValue: Boolean(
|
isValueFieldValue: Boolean(
|
||||||
typeof valueParsed == "object" &&
|
typeof valueParsed == "object" &&
|
||||||
valueParsed.fieldName &&
|
valueParsed.fieldName &&
|
||||||
valueParsed.tableName
|
valueParsed.tableName,
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -144,7 +144,7 @@ export default function sqlGenerator<
|
|||||||
|
|
||||||
function generateJoinStr(
|
function generateJoinStr(
|
||||||
mtch: ServerQueryParamsJoinMatchObject,
|
mtch: ServerQueryParamsJoinMatchObject,
|
||||||
join: ServerQueryParamsJoin
|
join: ServerQueryParamsJoin,
|
||||||
) {
|
) {
|
||||||
return `${finalDbName}${
|
return `${finalDbName}${
|
||||||
typeof mtch.source == "object" ? mtch.source.tableName : tableName
|
typeof mtch.source == "object" ? mtch.source.tableName : tableName
|
||||||
@ -182,7 +182,7 @@ export default function sqlGenerator<
|
|||||||
let fullTextMatchStr = genObject?.fullTextSearch
|
let fullTextMatchStr = genObject?.fullTextSearch
|
||||||
? ` MATCH(${genObject.fullTextSearch.fields
|
? ` MATCH(${genObject.fullTextSearch.fields
|
||||||
.map((f) =>
|
.map((f) =>
|
||||||
genObject.join ? `${tableName}.${String(f)}` : `${String(f)}`
|
genObject.join ? `${tableName}.${String(f)}` : `${String(f)}`,
|
||||||
)
|
)
|
||||||
.join(",")}) AGAINST (? IN BOOLEAN MODE)`
|
.join(",")}) AGAINST (? IN BOOLEAN MODE)`
|
||||||
: undefined;
|
: undefined;
|
||||||
@ -206,7 +206,7 @@ export default function sqlGenerator<
|
|||||||
typeof fld == "object"
|
typeof fld == "object"
|
||||||
? `${finalDbName}${tableName}.${fld.fieldName.toString()}` +
|
? `${finalDbName}${tableName}.${fld.fieldName.toString()}` +
|
||||||
(fld.alias ? ` as ${fld.alias}` : ``)
|
(fld.alias ? ` as ${fld.alias}` : ``)
|
||||||
: `${finalDbName}${tableName}.${String(fld)}`
|
: `${finalDbName}${tableName}.${String(fld)}`,
|
||||||
)
|
)
|
||||||
.join(",")}`;
|
.join(",")}`;
|
||||||
} else {
|
} else {
|
||||||
@ -215,7 +215,7 @@ export default function sqlGenerator<
|
|||||||
typeof fld == "object"
|
typeof fld == "object"
|
||||||
? `${fld.fieldName.toString()}` +
|
? `${fld.fieldName.toString()}` +
|
||||||
(fld.alias ? ` as ${fld.alias}` : ``)
|
(fld.alias ? ` as ${fld.alias}` : ``)
|
||||||
: fld
|
: fld,
|
||||||
)
|
)
|
||||||
.join(",")}`;
|
.join(",")}`;
|
||||||
}
|
}
|
||||||
@ -340,12 +340,12 @@ export default function sqlGenerator<
|
|||||||
"(" +
|
"(" +
|
||||||
join.match
|
join.match
|
||||||
.map((mtch) =>
|
.map((mtch) =>
|
||||||
generateJoinStr(mtch, join)
|
generateJoinStr(mtch, join),
|
||||||
)
|
)
|
||||||
.join(
|
.join(
|
||||||
join.operator
|
join.operator
|
||||||
? ` ${join.operator} `
|
? ` ${join.operator} `
|
||||||
: " AND "
|
: " AND ",
|
||||||
) +
|
) +
|
||||||
")"
|
")"
|
||||||
);
|
);
|
||||||
@ -394,7 +394,7 @@ export default function sqlGenerator<
|
|||||||
});
|
});
|
||||||
|
|
||||||
const cleanedUpSearchStr = sqlSearhString?.filter(
|
const cleanedUpSearchStr = sqlSearhString?.filter(
|
||||||
(str) => typeof str == "string"
|
(str) => typeof str == "string",
|
||||||
);
|
);
|
||||||
|
|
||||||
const isSearchStr =
|
const isSearchStr =
|
||||||
@ -403,7 +403,7 @@ export default function sqlGenerator<
|
|||||||
if (isSearchStr) {
|
if (isSearchStr) {
|
||||||
const stringOperator = genObject?.searchOperator || "AND";
|
const stringOperator = genObject?.searchOperator || "AND";
|
||||||
queryString += ` WHERE ${cleanedUpSearchStr.join(
|
queryString += ` WHERE ${cleanedUpSearchStr.join(
|
||||||
` ${stringOperator} `
|
` ${stringOperator} `,
|
||||||
)}`;
|
)}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -412,10 +412,36 @@ export default function sqlGenerator<
|
|||||||
sqlSearhValues.push(fullTextSearchStr);
|
sqlSearhValues.push(fullTextSearchStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (genObject?.group?.[0]) {
|
if (genObject?.group) {
|
||||||
queryString += ` GROUP BY ${genObject.group
|
let group_by_txt = ``;
|
||||||
.map((g) => `\`${g.toString()}\``)
|
|
||||||
.join(",")}`;
|
if (typeof genObject.group == "string") {
|
||||||
|
group_by_txt = genObject.group;
|
||||||
|
} else if (Array.isArray(genObject.group)) {
|
||||||
|
for (let i = 0; i < genObject.group.length; i++) {
|
||||||
|
const group = genObject.group[i];
|
||||||
|
|
||||||
|
if (typeof group == "string") {
|
||||||
|
group_by_txt += `\`${group.toString()}\``;
|
||||||
|
} else if (typeof group == "object" && group.table) {
|
||||||
|
group_by_txt += `${group.table}.${String(group.field)}`;
|
||||||
|
} else if (typeof group == "object") {
|
||||||
|
group_by_txt += `${String(group.field)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i < genObject.group.length - 1) {
|
||||||
|
group_by_txt += ",";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (typeof genObject.group == "object") {
|
||||||
|
if (genObject.group.table) {
|
||||||
|
group_by_txt = `${genObject.group.table}.${String(genObject.group.field)}`;
|
||||||
|
} else {
|
||||||
|
group_by_txt = `${String(genObject.group.field)}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
queryString += ` GROUP BY ${group_by_txt}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
function grabOrderString(order: ServerQueryParamOrder<T>) {
|
function grabOrderString(order: ServerQueryParamOrder<T>) {
|
||||||
@ -426,7 +452,7 @@ export default function sqlGenerator<
|
|||||||
orderFields.push(genObject.fullTextSearch.scoreAlias);
|
orderFields.push(genObject.fullTextSearch.scoreAlias);
|
||||||
} else if (genObject?.join) {
|
} else if (genObject?.join) {
|
||||||
orderFields.push(
|
orderFields.push(
|
||||||
`${finalDbName}${tableName}.${String(order.field)}`
|
`${finalDbName}${tableName}.${String(order.field)}`,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
orderFields.push(order.field);
|
orderFields.push(order.field);
|
||||||
|
|||||||
@ -1101,7 +1101,7 @@ export type ServerQueryParam<
|
|||||||
limit?: number;
|
limit?: number;
|
||||||
page?: number;
|
page?: number;
|
||||||
offset?: number;
|
offset?: number;
|
||||||
order?: ServerQueryParamOrder | ServerQueryParamOrder[];
|
order?: ServerQueryParamOrder<T> | ServerQueryParamOrder<T>[];
|
||||||
searchOperator?: (typeof ServerQueryOperators)[number];
|
searchOperator?: (typeof ServerQueryOperators)[number];
|
||||||
searchEquality?: (typeof ServerQueryEqualities)[number];
|
searchEquality?: (typeof ServerQueryEqualities)[number];
|
||||||
addUserId?: {
|
addUserId?: {
|
||||||
@ -1112,12 +1112,22 @@ export type ServerQueryParam<
|
|||||||
| ServerQueryParamsJoin<K>[]
|
| ServerQueryParamsJoin<K>[]
|
||||||
| undefined
|
| undefined
|
||||||
)[];
|
)[];
|
||||||
group?: (keyof T)[];
|
group?:
|
||||||
|
| keyof T
|
||||||
|
| ServerQueryParamGroupBy<T>
|
||||||
|
| (keyof T | ServerQueryParamGroupBy<T>)[];
|
||||||
countSubQueries?: ServerQueryParamsCount[];
|
countSubQueries?: ServerQueryParamsCount[];
|
||||||
fullTextSearch?: ServerQueryParamFullTextSearch<T>;
|
fullTextSearch?: ServerQueryParamFullTextSearch<T>;
|
||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type ServerQueryParamGroupBy<
|
||||||
|
T extends { [k: string]: any } = { [k: string]: any },
|
||||||
|
> = {
|
||||||
|
field: keyof T;
|
||||||
|
table?: string;
|
||||||
|
};
|
||||||
|
|
||||||
export type ServerQueryParamOrder<
|
export type ServerQueryParamOrder<
|
||||||
T extends { [k: string]: any } = { [k: string]: any },
|
T extends { [k: string]: any } = { [k: string]: any },
|
||||||
> = {
|
> = {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@moduletrace/datasquirel",
|
"name": "@moduletrace/datasquirel",
|
||||||
"version": "5.7.52",
|
"version": "5.7.53",
|
||||||
"description": "Cloud-based SQL data management tool",
|
"description": "Cloud-based SQL data management tool",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user