/
viktorphp
/
back-socket
Обзор
Документация
Войти
/
viktorphp
/
back-socket
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/config/configuration.ts
185 строк
6 KB
Иванов Виктор Евгеньевич
feature-diary: добавить функционал дневника
11 апр 2026, 11:13
11 апр 2026, 11:13
8167a94
Код
Авторство
О чём код?
export const configuration = () => { return { nodeEnv: (() => { if (!process.env.NODE_ENV) { throw new Error('NODE_ENV is not defined in environment variables.'); } console.log(`NODE_ENV=${process.env.NODE_ENV}`); return process.env.NODE_ENV || 'development'; })(), jwt: { secret: process.env.JWT_SECRET || 'мой_секретный_ключ', expiresIn: process.env.JWT_EXPIRES_IN || '24h', expiresInMs: process.env.JWT_EXPIRES_IN_MS || '60000', refreshExpiresIn: process.env.JWT_REFRESH_EXPIRES_IN || '1d', refreshExpiresInMs: process.env.JWT_REFRESH_EXPIRES_IN_MS || '86400000', }, session: { secret: (() => { if (!process.env.SESSION_SECRET) { throw new Error( 'SESSION_SECRET is not defined in environment variables.', ); } console.log('SESSION_SECRET=accept'); return process.env.SESSION_SECRET || 'мой_секретный_ключ'; })(), maxAge: (() => { if (!process.env.SESSION_MAX_AGE) { throw new Error( 'SESSION_SECRET is not defined in environment variables.', ); } console.log(`SESSION_MAX_AGE=${process.env.SESSION_MAX_AGE}`); return parseInt(process.env.SESSION_MAX_AGE, 10) || 86400000; })(), }, database: { host: (() => { if (!process.env.DB_HOST) { throw new Error('DB_HOST is not defined in environment variables.'); } console.log(`DB_HOST=${process.env.DB_HOST}`); return (process.env.DB_HOST ?? '').toString(); })(), port: (() => { if (!process.env.DB_PORT) { throw new Error('DB_PORT is not defined in environment variables.'); } console.log(`DB_PORT=${process.env.DB_PORT}`); return parseInt(process.env.DB_PORT, 10) || 5432; })(), username: (() => { if (!process.env.DB_USERNAME) { throw new Error( 'DB_USERNAME is not defined in environment variables.', ); } console.log(`DB_USERNAME=${process.env.DB_USERNAME}`); return (process.env.DB_USERNAME ?? '').toString(); })(), password: (() => { if (!process.env.DB_PASSWORD) { throw new Error( 'DB_PASSWORD is not defined in environment variables.', ); } console.log('DB_PASSWORD=accept'); return (process.env.DB_PASSWORD ?? '').toString(); })(), database: (() => { if (!process.env.DB_DATABASE) { throw new Error( 'DB_DATABASE is not defined in environment variables.', ); } console.log(`DB_DATABASE=${process.env.DB_DATABASE}`); return (process.env.DB_DATABASE ?? '').toString(); })(), }, port: (() => { if (!process.env.PORT) { throw new Error('PORT is not defined in environment variables.'); } console.log(`PORT=${process.env.PORT}`); return parseInt(process.env.PORT, 10) || 3000; })(), cookie: { secure: (() => { if (!process.env.COOKIE_SECURE) { throw new Error( 'COOKIE_SECURE is not defined in environment variables.', ); } console.log(`COOKIE_SECURE=${process.env.COOKIE_SECURE}`); return process.env.COOKIE_SECURE === 'true'; })(), sameSite: (() => { if (!process.env.COOKIE_SAME_SITE) { throw new Error( 'COOKIE_SAME_SITE is not defined in environment variables.', ); } console.log(`COOKIE_SAME_SITE=${process.env.COOKIE_SAME_SITE}`); return process.env.COOKIE_SAME_SITE || 'strict'; })(), httpOnly: (() => { if (!process.env.COOKIE_HTTP_ONLY) { throw new Error( 'COOKIE_HTTP_ONLY is not defined in environment variables.', ); } console.log(`COOKIE_HTTP_ONLY=${process.env.COOKIE_HTTP_ONLY}`); return process.env.COOKIE_HTTP_ONLY === 'true'; })(), }, // --- Yandex Object Storage (S3-совместимое хранилище для файлов дневника) --- storage: { endpoint: (() => { if (!process.env.YANDEX_STORAGE_ENDPOINT) { throw new Error( 'YANDEX_STORAGE_ENDPOINT is not defined in environment variables.', ); } console.log( `YANDEX_STORAGE_ENDPOINT=${process.env.YANDEX_STORAGE_ENDPOINT}`, ); return process.env.YANDEX_STORAGE_ENDPOINT; })(), region: (() => { if (!process.env.YANDEX_STORAGE_REGION) { throw new Error( 'YANDEX_STORAGE_REGION is not defined in environment variables.', ); } console.log( `YANDEX_STORAGE_REGION=${process.env.YANDEX_STORAGE_REGION}`, ); return process.env.YANDEX_STORAGE_REGION; })(), accessKeyId: (() => { if (!process.env.YANDEX_STORAGE_ACCESS_KEY_ID) { throw new Error( 'YANDEX_STORAGE_ACCESS_KEY_ID is not defined in environment variables.', ); } console.log('YANDEX_STORAGE_ACCESS_KEY_ID=accept'); return process.env.YANDEX_STORAGE_ACCESS_KEY_ID; })(), secretAccessKey: (() => { if (!process.env.YANDEX_STORAGE_SECRET_ACCESS_KEY) { throw new Error( 'YANDEX_STORAGE_SECRET_ACCESS_KEY is not defined in environment variables.', ); } console.log('YANDEX_STORAGE_SECRET_ACCESS_KEY=accept'); return process.env.YANDEX_STORAGE_SECRET_ACCESS_KEY; })(), bucket: (() => { if (!process.env.YANDEX_STORAGE_BUCKET) { throw new Error( 'YANDEX_STORAGE_BUCKET is not defined in environment variables.', ); } console.log( `YANDEX_STORAGE_BUCKET=${process.env.YANDEX_STORAGE_BUCKET}`, ); return process.env.YANDEX_STORAGE_BUCKET; })(), }, // --- Yandex Vision OCR (распознавание текста на изображениях и PDF) --- vision: { apiKey: (() => { if (!process.env.YANDEX_VISION_API_KEY) { throw new Error( 'YANDEX_VISION_API_KEY is not defined in environment variables.', ); } console.log('YANDEX_VISION_API_KEY=accept'); return process.env.YANDEX_VISION_API_KEY; })(), }, }; };