umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
192 lines (191 loc) • 5.03 kB
TypeScript
/**
* Интерфейс конфигурации окружения
* Определяет структуру переменных окружения для приложения
*
* @remarks
* Все поля являются опциональными и могут быть определены в файле .env
*
* @example
* ```ts
* // Пример файла .env
* TELEGRAM_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
* VK_TOKEN=vk1.a.1234567890abcdef
* DB_HOST=localhost
* DB_USER=root
* DB_PASSWORD=secret
* DB_NAME=myapp
* ```
*/
export interface IEnvConfig {
/**
* Токен для Telegram Bot API
* Используется для авторизации бота в Telegram
*
* @example
* ```ts
* TELEGRAM_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
* ```
*/
TELEGRAM_TOKEN?: string;
/**
* Токен для VK API
* Используется для авторизации в VK API
*
* @example
* ```ts
* VK_TOKEN=vk1.a.1234567890abcdef
* ```
*/
VK_TOKEN?: string;
/**
* Токен подтверждения для VK Callback API
* Используется для верификации запросов от VK
*
* @example
* ```ts
* VK_CONFIRMATION_TOKEN=abcdef123456
* ```
*/
VK_CONFIRMATION_TOKEN?: string;
/**
* Токен для Viber API
* Используется для авторизации в Viber API
*
* @example
* ```ts
* VIBER_TOKEN=1234567890abcdef
* ```
*/
VIBER_TOKEN?: string;
/**
* Токен для Яндекс.Диалоги (Алиса)
* Используется для авторизации в API Яндекс.Диалогов
*
* @example
* ```ts
* YANDEX_TOKEN=1234567890abcdef
* ```
*/
YANDEX_TOKEN?: string;
/**
* Токен для Маруси
* Используется для авторизации в API Маруси
*
* @example
* ```ts
* MARUSIA_TOKEN=1234567890abcdef
* ```
*/
MARUSIA_TOKEN?: string;
/**
* Токен для Max
* Используется для авторизации в API MAX
*
* @example
* ```ts
* MAX_TOKEN=1234567890abcdef
* ```
*/
MAX_TOKEN?: string;
/**
* Токен для Сбер SmartApp
* Используется для авторизации в API Сбер SmartApp
*
* @example
* ```ts
* SMARTAPP_TOKEN=1234567890abcdef
* ```
*/
SMARTAPP_TOKEN?: string;
/**
* Адрес сервера базы данных
*
* @remarks
* Может быть указан как:
* - localhost
* - IP-адрес
* - доменное имя
*
* @example
* ```ts
* DB_HOST=localhost
* DB_HOST=127.0.0.1
* DB_HOST=db.example.com
* ```
*/
DB_HOST?: string;
/**
* Имя пользователя для подключения к базе данных
*
* @example
* ```ts
* DB_USER=root
* ```
*/
DB_USER?: string;
/**
* Пароль для подключения к базе данных
*
* @remarks
* Рекомендуется использовать сложные пароли
* и хранить их в безопасном месте
*
* @example
* ```ts
* DB_PASSWORD=my_secure_password
* ```
*/
DB_PASSWORD?: string;
/**
* Название базы данных
*
* @example
* ```ts
* DB_NAME=myapp
* ```
*/
DB_NAME?: string;
}
/**
* Статус загрузки конфигурации
*/
export interface IEnvConfigStatus {
/**
* Флаг успешности загрузки
*/
status: boolean;
/**
* Ошибка загрузки
*/
error?: string;
/**
* Данные конфигурации
*/
data?: IEnvConfig;
}
/**
* Загружает переменные окружения из файла .env
*
* @param {string} envPath - Путь к файлу .env
* @returns {IEnvConfig} Объект с переменными окружения
*
* @remarks
* Функция:
* - Читает файл .env
* - Парсит строки формата KEY=VALUE
* - Игнорирует пустые строки и комментарии
* - Удаляет кавычки из значений
*
* @example
* ```ts
* // Загрузка конфигурации
* const config = loadEnvFile('.env');
*
* // Использование значений
* const telegramToken = config.TELEGRAM_TOKEN;
* const dbHost = config.DB_HOST;
* ```
*
* @throws {Error} Если файл не найден или не может быть прочитан
*/
export declare function loadEnvFile(envPath: string): IEnvConfigStatus;