38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
![]() |
import sqlGenerator from "../functions/dsql/sql/sql-generator";
|
||
|
import { ApiGetQueryObject } from "../types";
|
||
|
|
||
|
type Param<T extends { [key: string]: any } = { [key: string]: any }> = {
|
||
|
query: string | ApiGetQueryObject<T>;
|
||
|
values?: (string | number)[];
|
||
|
};
|
||
|
export default function apiGetGrabQueryAndValues<
|
||
|
T extends { [key: string]: any } = { [key: string]: any }
|
||
|
>({ query, values }: Param<T>) {
|
||
|
const queryGenObject =
|
||
|
typeof query == "string"
|
||
|
? undefined
|
||
|
: sqlGenerator({
|
||
|
tableName: query.table,
|
||
|
genObject: query.query,
|
||
|
dbFullName: query.dbFullName || "__db",
|
||
|
});
|
||
|
|
||
|
return {
|
||
|
query:
|
||
|
typeof query == "string"
|
||
|
? String(
|
||
|
query.replace(/\n|\r|\n\r/g, "").replace(/ {2,}/g, " ")
|
||
|
)
|
||
|
: queryGenObject?.string || "",
|
||
|
values: values || queryGenObject?.values,
|
||
|
valuesString:
|
||
|
typeof query == "string"
|
||
|
? values
|
||
|
? JSON.stringify(values)
|
||
|
: undefined
|
||
|
: queryGenObject?.values
|
||
|
? JSON.stringify(queryGenObject.values)
|
||
|
: undefined,
|
||
|
};
|
||
|
}
|