Files
whats-the-point/backend/src/config.js
2026-01-29 01:49:52 -05:00

61 lines
1.3 KiB
JavaScript

/**
* Environment configuration and validation
*/
const requiredEnvVars = [
'JWT_SECRET',
'DB_HOST',
'DB_USER',
'DB_PASSWORD',
'DB_NAME',
'TMDB_API_KEY'
];
export function validateConfig() {
const missing = [];
for (const varName of requiredEnvVars) {
if (!process.env[varName]) {
missing.push(varName);
}
}
if (missing.length > 0) {
console.error('❌ Missing required environment variables:');
missing.forEach(varName => {
console.error(` - ${varName}`);
});
console.error('\nPlease set these in your .env file or environment.');
process.exit(1);
}
// Validate JWT_SECRET is strong enough
if (process.env.JWT_SECRET.length < 32) {
console.error('❌ JWT_SECRET must be at least 32 characters long for security.');
process.exit(1);
}
console.log('✅ Environment configuration validated');
}
export const config = {
jwt: {
secret: process.env.JWT_SECRET,
expiresIn: '7d'
},
db: {
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
port: parseInt(process.env.DB_PORT || '3306', 10)
},
tmdb: {
apiKey: process.env.TMDB_API_KEY,
baseUrl: 'https://api.themoviedb.org/3'
},
server: {
port: parseInt(process.env.PORT || '3000', 10)
}
};