first commit
هذا الالتزام موجود في:
69
src/config/configuration.ts
Normal file
69
src/config/configuration.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
export default () => ({
|
||||
nodeEnv: process.env.NODE_ENV ?? 'development',
|
||||
port: Number(process.env.PORT ?? 4000),
|
||||
host: process.env.HOST ?? '0.0.0.0',
|
||||
publicBaseUrl:
|
||||
process.env.PUBLIC_BASE_URL ??
|
||||
`http://localhost:${Number(process.env.PORT ?? 4000)}`,
|
||||
responseEnvelopeEnabled:
|
||||
(process.env.RESPONSE_ENVELOPE_ENABLED ?? 'false').toLowerCase() === 'true',
|
||||
globalPrefix: process.env.GLOBAL_PREFIX ?? 'api/v1',
|
||||
cors: {
|
||||
origins: (process.env.CORS_ORIGINS ?? '')
|
||||
.split(',')
|
||||
.map((origin) => origin.trim())
|
||||
.filter((origin) => origin.length > 0),
|
||||
},
|
||||
mongodb: {
|
||||
uri: process.env.MONGODB_URI ?? 'mongodb://127.0.0.1:27017/oudelaa',
|
||||
},
|
||||
jwt: {
|
||||
accessSecret: process.env.JWT_ACCESS_SECRET ?? '',
|
||||
accessExpiresIn: process.env.JWT_ACCESS_EXPIRES_IN ?? '15m',
|
||||
refreshSecret: process.env.JWT_REFRESH_SECRET ?? '',
|
||||
refreshExpiresIn: process.env.JWT_REFRESH_EXPIRES_IN ?? '30d',
|
||||
},
|
||||
superAdmin: {
|
||||
email: (process.env.SUPERADMIN_EMAIL ?? '').toLowerCase(),
|
||||
password: process.env.SUPERADMIN_PASSWORD ?? '',
|
||||
accessSecret: process.env.SUPERADMIN_ACCESS_SECRET ?? '',
|
||||
accessExpiresIn: process.env.SUPERADMIN_ACCESS_EXPIRES_IN ?? '15m',
|
||||
refreshSecret: process.env.SUPERADMIN_REFRESH_SECRET ?? '',
|
||||
refreshExpiresIn: process.env.SUPERADMIN_REFRESH_EXPIRES_IN ?? '30d',
|
||||
},
|
||||
google: {
|
||||
clientId: process.env.GOOGLE_CLIENT_ID ?? '',
|
||||
clientSecret: process.env.GOOGLE_CLIENT_SECRET ?? '',
|
||||
callbackUrl:
|
||||
process.env.GOOGLE_CALLBACK_URL ?? 'http://localhost:4000/api/v1/auth/google/callback',
|
||||
},
|
||||
email: {
|
||||
enabled: (process.env.EMAIL_ENABLED ?? 'false').toLowerCase() === 'true',
|
||||
smtpHost: process.env.EMAIL_SMTP_HOST ?? 'smtp.gmail.com',
|
||||
smtpPort: Number(process.env.EMAIL_SMTP_PORT ?? 587),
|
||||
smtpSecure: (process.env.EMAIL_SMTP_SECURE ?? 'false').toLowerCase() === 'true',
|
||||
smtpUser: process.env.EMAIL_SMTP_USER ?? '',
|
||||
smtpPass: process.env.EMAIL_SMTP_PASS ?? '',
|
||||
fromName: process.env.EMAIL_FROM_NAME ?? 'Oudelaa',
|
||||
fromEmail: process.env.EMAIL_FROM_EMAIL ?? process.env.EMAIL_SMTP_USER ?? '',
|
||||
},
|
||||
security: {
|
||||
bcryptSaltRounds: Number(process.env.BCRYPT_SALT_ROUNDS ?? 12),
|
||||
},
|
||||
passwordReset: {
|
||||
codeExpiresMinutes: Number(process.env.PASSWORD_RESET_CODE_EXPIRES_MINUTES ?? 10),
|
||||
maxAttempts: Number(process.env.PASSWORD_RESET_MAX_ATTEMPTS ?? 5),
|
||||
tokenSecret: process.env.PASSWORD_RESET_TOKEN_SECRET ?? process.env.JWT_ACCESS_SECRET ?? '',
|
||||
tokenExpiresIn: process.env.PASSWORD_RESET_TOKEN_EXPIRES_IN ?? '15m',
|
||||
},
|
||||
emailVerification: {
|
||||
codeExpiresMinutes: Number(process.env.EMAIL_VERIFICATION_CODE_EXPIRES_MINUTES ?? 10),
|
||||
maxAttempts: Number(process.env.EMAIL_VERIFICATION_MAX_ATTEMPTS ?? 5),
|
||||
},
|
||||
swagger: {
|
||||
title: process.env.SWAGGER_TITLE ?? 'Oudelaa API',
|
||||
description: process.env.SWAGGER_DESCRIPTION ?? 'Social media backend API documentation',
|
||||
version: process.env.SWAGGER_VERSION ?? '1.0.0',
|
||||
path: process.env.SWAGGER_PATH ?? 'docs',
|
||||
},
|
||||
});
|
||||
المرجع في مشكلة جديدة
حظر مستخدم