/
commondan
/
authapi
Обзор
Документация
Войти
/
commondan
/
authapi
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/config/env.js
54 строки
1 KB
CommondaN0
First initial commit of auth API for web-app
04 апр 2026, 20:13
04 апр 2026, 20:13
27b471c
Код
Авторство
О чём код?
import "dotenv/config"; const requiredEnvVars = [ "SESSION_SECRET", "CLIENT_URL", "DB_HOST", "DB_PORT", "DB_NAME", "DB_USER", "DB_PASSWORD", ]; const getEnv = (key, fallback) => process.env[key] || fallback; const parseBoolean = (value, fallback = false) => { if (value === undefined) { return fallback; } return value === "true"; }; const parseNumber = (value, fallback) => { const parsed = Number(value); return Number.isNaN(parsed) ? fallback : parsed; }; const validateEnv = () => { const missingKeys = requiredEnvVars.filter((key) => !process.env[key]); if (missingKeys.length > 0) { throw new Error(`Missing required environment variables: ${missingKeys.join(", ")}`); } }; const env = { port: parseNumber(getEnv("PORT"), 5000), nodeEnv: getEnv("NODE_ENV", "development"), clientUrl: getEnv("CLIENT_URL"), sessionSecret: getEnv("SESSION_SECRET"), sessionName: getEnv("SESSION_NAME", "sid"), sessionMaxAge: parseNumber(getEnv("SESSION_MAX_AGE"), 1000 * 60 * 60 * 24 * 7), db: { host: getEnv("DB_HOST"), port: parseNumber(getEnv("DB_PORT"), 5432), name: getEnv("DB_NAME"), user: getEnv("DB_USER"), password: getEnv("DB_PASSWORD"), ssl: parseBoolean(getEnv("DB_SSL"), false), }, }; export { env, validateEnv };