"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = grabDSQLConnection;
const serverless_mysql_1 = __importDefault(require("serverless-mysql"));
/**
 * # Grab General CONNECTION for DSQL
 */
function grabDSQLConnection(param) {
    if (param === null || param === void 0 ? void 0 : param.ro) {
        return (DSQL_READ_ONLY_DB_CONN ||
            (0, serverless_mysql_1.default)({
                config: {
                    host: process.env.DSQL_DB_HOST,
                    user: process.env.DSQL_DB_READ_ONLY_USERNAME,
                    password: process.env.DSQL_DB_READ_ONLY_PASSWORD,
                    port: process.env.DSQL_DB_PORT
                        ? Number(process.env.DSQL_DB_PORT)
                        : undefined,
                    charset: "utf8mb4",
                },
            }));
    }
    if (param === null || param === void 0 ? void 0 : param.fa) {
        return (global.DSQL_FULL_ACCESS_DB_CONN ||
            (0, serverless_mysql_1.default)({
                config: {
                    host: process.env.DSQL_DB_HOST,
                    user: process.env.DSQL_DB_FULL_ACCESS_USERNAME,
                    password: process.env.DSQL_DB_FULL_ACCESS_PASSWORD,
                    port: process.env.DSQL_DB_PORT
                        ? Number(process.env.DSQL_DB_PORT)
                        : undefined,
                    charset: "utf8mb4",
                },
            }));
    }
    return (global.DSQL_DB_CONN ||
        (0, serverless_mysql_1.default)({
            config: {
                host: process.env.DSQL_DB_HOST,
                user: process.env.DSQL_DB_USERNAME,
                password: process.env.DSQL_DB_PASSWORD,
                database: (param === null || param === void 0 ? void 0 : param.noDb) ? undefined : process.env.DSQL_DB_NAME,
                port: process.env.DSQL_DB_PORT
                    ? Number(process.env.DSQL_DB_PORT)
                    : undefined,
                charset: "utf8mb4",
            },
        }));
}