.env: проверяем один раз на старте #1

Open
NBizyaev wants to merge 1 commits from review into main
First-time contributor

Переменные окружения нужно проверить сразу при запуске, а не в каждом сервисе:

  • описываем схему (что обязательно, что с дефолтом);
  • если что-то не так — приложение не запускается с понятной ошибкой;
  • если всё ок — типы уже правильные ("3100"3100).

В коде сервисов: просто берём значение: config.get('PG_POOL_MAX'); и не грузим[ся] без ?? 20, без parseInt, без if (!url) throw ... и без целого модуля валидации src/common/config-number.ts

Почему так лучше:

  • ошибка конфига видна сразу, а не в случайном месте на проде;
  • проверки не дублируются по всему проекту;
  • сервисы занимаются своей логикой, а не разбором env.
Переменные окружения нужно проверить **сразу при запуске**, а не в каждом сервисе: - описываем схему (что обязательно, что с дефолтом); - если что-то не так — приложение **не запускается** с понятной ошибкой; - если всё ок — типы уже правильные (`"3100"` → `3100`). В коде сервисов: просто берём значение: `config.get('PG_POOL_MAX')`; и не грузим[ся] без `?? 20`, без `parseInt`, без `if (!url) throw ...` **и без целого модуля валидации src/common/config-number.ts** **Почему так лучше:** - ошибка конфига видна сразу, а не в случайном месте на проде; - проверки не дублируются по всему проекту; - сервисы занимаются своей логикой, а не разбором env.
NBizyaev added 1 commit 2026-06-17 08:31:50 +00:00
NBizyaev reviewed 2026-06-17 08:33:44 +00:00
@@ -0,0 +11,4 @@
HISTORY_MAX_TARGET_POINTS: number;
}
export const envValidationSchema = Joi.object({
Author
First-time contributor

Только я не уверен, что правильно описал схему валидации - какие переменные обязательны, какие - нет, какие ограничения значения по умолчанию?

Только я не уверен, что правильно описал схему валидации - какие переменные обязательны, какие - нет, какие ограничения значения по умолчанию?
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin review:review
git checkout review
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: APervov/cloud#1