forked from rohit/spurrin-backend
51 lines
1.5 KiB
JavaScript
51 lines
1.5 KiB
JavaScript
require('dotenv').config();
|
|
|
|
const env = {
|
|
NODE_ENV: process.env.NODE_ENV || 'development',
|
|
PORT: process.env.PORT || 3000,
|
|
|
|
// JWT Configuration
|
|
JWT_SECRET: process.env.JWT_SECRET,
|
|
JWT_EXPIRES_IN: process.env.JWT_EXPIRES_IN || '24h',
|
|
|
|
// Email Configuration
|
|
EMAIL_USER: process.env.EMAIL_USER,
|
|
EMAIL_PASS: process.env.EMAIL_PASS,
|
|
EMAIL_HOST: process.env.EMAIL_HOST || 'smtp.gmail.com',
|
|
EMAIL_PORT: process.env.EMAIL_PORT || 587,
|
|
BACK_URL: process.env.BACK_URL,
|
|
|
|
// Database Configuration
|
|
DB_HOST: process.env.DB_HOST,
|
|
DB_USER: process.env.DB_USER,
|
|
DB_PASSWORD: process.env.DB_PASSWORD,
|
|
DB_NAME: process.env.DB_NAME,
|
|
|
|
// API Configuration
|
|
SPURRIN_API_URL: process.env.SPURRIN_API_URL,
|
|
SPURRIN_API_KEY: process.env.SPURRIN_API_KEY
|
|
};
|
|
|
|
// Group required environment variables by feature
|
|
const requiredEnvVars = {
|
|
email: ['EMAIL_USER', 'EMAIL_PASS', 'EMAIL_HOST', 'BACK_URL'],
|
|
database: ['DB_HOST', 'DB_USER', 'DB_PASSWORD', 'DB_NAME'],
|
|
jwt: ['JWT_SECRET'],
|
|
api: ['SPURRIN_API_URL', 'SPURRIN_API_KEY']
|
|
};
|
|
|
|
// Validate required environment variables based on feature
|
|
const validateEnvVars = (feature) => {
|
|
const vars = requiredEnvVars[feature] || [];
|
|
const missingVars = vars.filter(envVar => !env[envVar]);
|
|
|
|
if (missingVars.length > 0) {
|
|
throw new Error(`Missing required environment variables for ${feature}: ${missingVars.join(', ')}`);
|
|
}
|
|
};
|
|
|
|
// Export validation function along with env object
|
|
module.exports = {
|
|
env,
|
|
validateEnvVars
|
|
};
|