datasquirel/package-shared/utils/grab-dsql-connection-config.ts
Benjamin Toby 43a741f9ac Updates
2025-08-05 13:56:51 +01:00

44 lines
1.4 KiB
TypeScript

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);
}