chore(backend): bootstrap Express + TypeScript + Prisma
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import dotenv from 'dotenv';
|
||||
|
||||
dotenv.config();
|
||||
|
||||
function required(name: string): string {
|
||||
const value = process.env[name];
|
||||
|
||||
if (!value) {
|
||||
throw new Error(`Variable d'environnement manquante: ${name}`);
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
function numberFromEnv(name: string, defaultValue: number): number {
|
||||
const value = process.env[name];
|
||||
|
||||
if (!value) {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
const parsed = Number(value);
|
||||
|
||||
if (Number.isNaN(parsed)) {
|
||||
throw new Error(`Variable d'environnement invalide: ${name}`);
|
||||
}
|
||||
|
||||
return parsed;
|
||||
}
|
||||
|
||||
export const env = {
|
||||
port: numberFromEnv('PORT', 3000),
|
||||
nodeEnv: process.env.NODE_ENV || 'development',
|
||||
frontendUrl: required('FRONTEND_URL'),
|
||||
databaseUrl: required('DATABASE_URL'),
|
||||
db: {
|
||||
server: required('DB_SERVER'),
|
||||
port: numberFromEnv('DB_PORT', 1433),
|
||||
name: required('DB_NAME'),
|
||||
user: required('DB_USER'),
|
||||
password: required('DB_PASSWORD'),
|
||||
},
|
||||
azure: {
|
||||
tenantId: required('AZURE_TENANT_ID'),
|
||||
clientId: required('AZURE_CLIENT_ID'),
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user