import { ConnectionConfig } from "mariadb"; import grabDbSSL from "./backend/grabDbSSL"; import { DsqlConnectionParam } from "../types"; import grabDbNames from "./grab-db-names"; /** * # Grab General CONNECTION for DSQL */ export default function grabDSQLConnectionConfig( param?: DsqlConnectionParam ): ConnectionConfig { const CONN_TIMEOUT = 10000; const dbNames = param?.noDb ? undefined : grabDbNames({ dbName: param?.database }); const config: ConnectionConfig = { host: process.env.DSQL_DB_HOST, user: process.env.DSQL_DB_USERNAME, password: process.env.DSQL_DB_PASSWORD, database: dbNames?.dbFullName, port: process.env.DSQL_DB_PORT ? Number(process.env.DSQL_DB_PORT) : undefined, charset: "utf8mb4", ssl: grabDbSSL(), bigIntAsNumber: true, supportBigNumbers: true, bigNumberStrings: false, dateStrings: true, metaAsArray: true, socketTimeout: CONN_TIMEOUT, connectTimeout: CONN_TIMEOUT, compress: true, ...param?.config, }; return config; }