import { ApiGetQueryObject } from "..";
import sqlGenerator from "../../../package-shared/functions/dsql/sql/sql-generator";

type Param = {
    query: string | ApiGetQueryObject;
    values?: (string | number)[];
};
export default function apiGetGrabQueryAndValues({ query, values }: Param) {
    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,
    };
}