44 lines
1.4 KiB
TypeScript
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);
|
|
}
|