123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import "../src/plugins/dotenv.js";
- import { z } from "zod";
- // Создаем схему конфигурации с проверками и преобразованиями
- const ZConfigShema = z.object({
- PORT: z
- .string()
- .min(1, "PORT must be defined")
- .transform((val) => parseInt(val, 10)),
- LOGS_LEVEL: z.enum(["error", "warn", "info", "verbose", "debug", "silly"]),
- API_URL: z.string().min(1, "API_URL must be defined"),
- // DB
- DB_USER: z.string().min(1, "DB_USER must be defined"),
- DB_HOST: z.string().min(1, "DB_HOST must be defined"),
- DB_PORT: z
- .string()
- .min(1, "DB_PORT must be defined")
- .transform((val) => parseInt(val, 10)),
- DB_NAME: z.string().min(1, "DB_NAME must be defined"),
- DB_PASS: z.string().min(1, "DB_PASS must be defined"),
- // MAIL
- SMTP_HOST: z.string().min(1, "SMTP_HOST must be defined"),
- SMTP_PORT: z
- .string()
- .min(1, "SMTP_PORT must be defined")
- .transform((val) => parseInt(val, 10)),
- SMTP_USER: z.string().min(1, "SMTP_USER must be defined"),
- SMTP_PASS: z.string().min(1, "SMTP_PASS must be defined"),
- // AUTH
- JWT_ACCESS_SECRET: z.string().min(1, "JWT_ACCESS_SECRET must be defined"),
- JWT_REFRESH_SECRET: z.string().min(1, "JWT_REFRESH_SECRET must be defined"),
- PASSWORD_MAX_TRIES: z
- .string()
- .min(1, "PASSWORD_MAX_TRIES must be defined")
- .transform((val) => parseInt(val, 10)),
- ACCESS_TOKEN_LIFETIME_MINS: z
- .string()
- .min(1, "ACCESS_TOKEN_LIFETIME_MINS must be defined")
- .transform((val) => parseInt(val, 10)),
- REFRESH_TOKEN_LIFETIME_DAYS: z
- .string()
- .min(1, "REFRESH_TOKEN_LIFETIME_DAYS must be defined")
- .transform((val) => parseInt(val, 10)),
- // CONFIRM PINS
- CONFIRM_PIN_LIFETIME_MINS: z
- .string()
- .min(1, "CONFIRM_PIN_LIFETIME_MINS must be defined")
- .transform((val) => parseInt(val, 10)),
- CONFIRM_PIN_MAX_TRIES: z
- .string()
- .min(1, "CONFIRM_PIN_MAX_TRIES must be defined")
- .transform((val) => parseInt(val, 10)),
- });
- // Парсим и валидируем переменные окружения
- export const config = ZConfigShema.parse(process.env);
|