Spaces:
Sleeping
Sleeping
| import { registerAs } from '@nestjs/config'; | |
| import * as fs from 'fs'; | |
| import * as path from 'path'; | |
| export default registerAs('database', () => { | |
| const dbPort = process.env.DB_PORT; | |
| const dbSslEnabled = process.env.DB_SSL === 'true'; | |
| const dbSslCaPath = process.env.DB_SSL_CA_PATH; | |
| if (!dbPort) { | |
| throw new Error('DB_PORT environment variable is required'); | |
| } | |
| let ssl: { ca?: string; rejectUnauthorized: boolean } | undefined; | |
| if (dbSslEnabled) { | |
| ssl = { | |
| rejectUnauthorized: true, | |
| }; | |
| if (dbSslCaPath) { | |
| const resolvedCaPath = path.resolve(process.cwd(), dbSslCaPath); | |
| if (!fs.existsSync(resolvedCaPath)) { | |
| throw new Error(`DB_SSL_CA_PATH file not found: ${resolvedCaPath}`); | |
| } | |
| ssl.ca = fs.readFileSync(resolvedCaPath, 'utf8'); | |
| } | |
| } | |
| return { | |
| type: 'mysql' as const, | |
| host: process.env.DB_HOST || 'localhost', | |
| port: parseInt(dbPort, 10), | |
| username: process.env.DB_USERNAME || 'root', | |
| password: process.env.DB_PASSWORD || '', | |
| database: process.env.DB_DATABASE || 'eduverse_db', | |
| synchronize: false, | |
| logging: process.env.NODE_ENV === 'development' ? ['error', 'warn'] : false, | |
| ssl, | |
| }; | |
| }); | |