23 lines
955 B
TypeScript
23 lines
955 B
TypeScript
import dotenv from 'dotenv';
|
|
import path from 'path';
|
|
|
|
dotenv.config({ path: path.resolve(process.cwd(), '.env') });
|
|
|
|
export const config = {
|
|
port: parseInt(process.env.PORT || '3001', 10),
|
|
nodeEnv: process.env.NODE_ENV || 'development',
|
|
jwtSecret: process.env.JWT_SECRET || 'vod-manager-dev-secret-change-me',
|
|
jwtExpiresIn: process.env.JWT_EXPIRES_IN || '7d',
|
|
encryptionKey: process.env.APP_ENCRYPTION_KEY || '',
|
|
defaultAdminUsername: process.env.DEFAULT_ADMIN_USERNAME || 'admin',
|
|
defaultAdminPassword: process.env.DEFAULT_ADMIN_PASSWORD || 'admin',
|
|
dbPath: process.env.DB_PATH || path.resolve(process.cwd(), 'data', 'vod-manager.db'),
|
|
vodEndpointTemplate: process.env.VOD_ENDPOINT_TEMPLATE || 'vod.{region}.aliyuncs.com',
|
|
};
|
|
|
|
export function validateConfig(): void {
|
|
if (config.nodeEnv === 'production' && config.jwtSecret === 'vod-manager-dev-secret-change-me') {
|
|
throw new Error('JWT_SECRET must be set in production');
|
|
}
|
|
}
|