This commit is contained in:
2025-12-05 06:33:20 +01:00
parent 57f06a631f
commit f91aff421c
5 changed files with 63 additions and 22 deletions
+21 -6
View File
@@ -275,19 +275,34 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) {
.map((g) => `\`${g.toString()}\``)
.join(",")}`;
}
if ((genObject === null || genObject === void 0 ? void 0 : genObject.order) && !count) {
function grabOrderString(order) {
let orderFields = [];
let orderSrt = ` ORDER BY`;
let orderSrt = ``;
if ((genObject === null || genObject === void 0 ? void 0 : genObject.fullTextSearch) && genObject.fullTextSearch.scoreAlias) {
orderFields.push(genObject.fullTextSearch.scoreAlias);
}
else if (genObject.join) {
orderFields.push(`${finalDbName}${tableName}.${String(genObject.order.field)}`);
else if (genObject === null || genObject === void 0 ? void 0 : genObject.join) {
orderFields.push(`${finalDbName}${tableName}.${String(order.field)}`);
}
else {
orderFields.push(genObject.order.field);
orderFields.push(order.field);
}
orderSrt += ` ${orderFields.join(", ")} ${order.strategy}`;
return orderSrt;
}
if ((genObject === null || genObject === void 0 ? void 0 : genObject.order) && !count) {
let orderSrt = ` ORDER BY`;
if (Array.isArray(genObject.order)) {
for (let i = 0; i < genObject.order.length; i++) {
const order = genObject.order[i];
orderSrt +=
grabOrderString(order) +
(i < genObject.order.length - 1 ? `,` : "");
}
}
else {
orderSrt += grabOrderString(genObject.order);
}
orderSrt += ` ${orderFields.join(", ")} ${genObject.order.strategy}`;
queryString += ` ${orderSrt}`;
}
if ((genObject === null || genObject === void 0 ? void 0 : genObject.limit) && !count)
+9 -4
View File
@@ -819,10 +819,7 @@ export type ServerQueryParam<T extends {
limit?: number;
page?: number;
offset?: number;
order?: {
field: keyof T;
strategy: "ASC" | "DESC";
};
order?: ServerQueryParamOrder | ServerQueryParamOrder[];
searchOperator?: (typeof ServerQueryOperators)[number];
searchEquality?: (typeof ServerQueryEqualities)[number];
addUserId?: {
@@ -834,6 +831,14 @@ export type ServerQueryParam<T extends {
fullTextSearch?: ServerQueryParamFullTextSearch<T>;
[key: string]: any;
};
export type ServerQueryParamOrder<T extends {
[k: string]: any;
} = {
[k: string]: any;
}> = {
field: keyof T;
strategy: "ASC" | "DESC";
};
export type ServerQueryParamFullTextSearch<T extends {
[k: string]: any;
} = {