39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import dotenv from 'dotenv';
|
|
import path from 'path';
|
|
|
|
dotenv.config({ path: path.resolve(__dirname, '../../../.env') });
|
|
|
|
const requiredEnv = [
|
|
'BETTER_AUTH_SECRET',
|
|
'BETTER_AUTH_URL',
|
|
'TRUSTED_ORIGINS',
|
|
'GOOGLE_CLIENT_ID',
|
|
'GOOGLE_CLIENT_SECRET',
|
|
'FILE_DRIVER',
|
|
'DATABASE_URL',
|
|
'CLOUDINARY_CLOUD_NAME',
|
|
'CLOUDINARY_API_KEY',
|
|
'CLOUDINARY_API_SECRET',
|
|
] as const;
|
|
|
|
for (const varName of requiredEnv) {
|
|
if (!process.env[varName]) {
|
|
throw new Error(`Missing required environment variable: ${varName}`);
|
|
}
|
|
}
|
|
|
|
export const config = {
|
|
betterAuthSecret: process.env.BETTER_AUTH_SECRET!,
|
|
betterAuthUrl: process.env.BETTER_AUTH_URL!,
|
|
trustedOrigins: process.env.TRUSTED_ORIGINS!.split(','),
|
|
googleClientId: process.env.GOOGLE_CLIENT_ID!,
|
|
googleClientSecret: process.env.GOOGLE_CLIENT_SECRET!,
|
|
fileDriver: process.env.FILE_DRIVER,
|
|
cloudinary: {
|
|
cloudName: process.env.CLOUDINARY_CLOUD_NAME!,
|
|
apiKey: process.env.CLOUDINARY_API_KEY!,
|
|
apiSecret: process.env.CLOUDINARY_API_SECRET!,
|
|
},
|
|
databaseUrl: process.env.DATABASE_URL!,
|
|
};
|