Add MySQL socket support

This commit is contained in:
Djuri Baars
2022-03-13 14:57:17 +01:00
parent ee5210acc4
commit bc729dc6f4
4 changed files with 27 additions and 9 deletions

View File

@@ -43,6 +43,7 @@ interface IConfig {
DATABASE: {
ENABLED: boolean;
HOST: string,
SOCKET: string | undefined,
PORT: number;
DATABASE: string;
USERNAME: string;
@@ -121,6 +122,7 @@ const defaults: IConfig = {
'DATABASE': {
'ENABLED': true,
'HOST': '127.0.0.1',
'SOCKET': undefined,
'PORT': 3306,
'DATABASE': 'mempool',
'USERNAME': 'mempool',

View File

@@ -1,17 +1,29 @@
import config from './config';
import { createPool, PoolConnection } from 'mysql2/promise';
import logger from './logger';
import { PoolOptions } from 'mysql2/typings/mysql';
export class DB {
static pool = createPool({
host: config.DATABASE.HOST,
port: config.DATABASE.PORT,
database: config.DATABASE.DATABASE,
user: config.DATABASE.USERNAME,
password: config.DATABASE.PASSWORD,
connectionLimit: 10,
supportBigNumbers: true,
});
static poolConfig = ():PoolOptions => {
let poolConfig:PoolOptions = {
port: config.DATABASE.PORT,
database: config.DATABASE.DATABASE,
user: config.DATABASE.USERNAME,
password: config.DATABASE.PASSWORD,
connectionLimit: 10,
supportBigNumbers: true,
timezone: '+00:00',
}
if (config.DATABASE.SOCKET)
poolConfig.socketPath = config.DATABASE.SOCKET
else
poolConfig.host = config.DATABASE.HOST
return poolConfig;
}
static pool = createPool(DB.poolConfig());
static connectionsReady: number[] = [];