import { ConnectionConfig } from "mariadb"; import grabDbSSL from "./backend/grabDbSSL"; import { DsqlConnectionParam } from "../types"; import serverlessMysql from "serverless-mysql"; import { ConnectionOptions } from "tls"; import _ from "lodash"; /** * # Grab General CONNECTION for DSQL */ export default function grabDSQLConnectionConfig( param?: DsqlConnectionParam ): serverlessMysql.Config { const CONN_TIMEOUT = 10000; const config: serverlessMysql.Config = { config: { host: process.env.DSQL_DB_HOST, user: process.env.DSQL_DB_USERNAME, password: process.env.DSQL_DB_PASSWORD, database: param?.database || (param?.noDb ? undefined : process.env.DSQL_DB_NAME), port: process.env.DSQL_DB_PORT ? Number(process.env.DSQL_DB_PORT) : undefined, charset: "utf8mb4", ssl: grabDbSSL(), connectTimeout: CONN_TIMEOUT, dateStrings: true, compress: true, decimalNumbers: true, // supportBigNumbers: true, // bigNumberStrings: false, // bigIntAsNumber: true, // metaAsArray: true, // socketTimeout: CONN_TIMEOUT, // ...param?.config, }, }; return _.merge(config, param?.config); }