UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

97 lines (96 loc) 3.74 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.loadEnvFile = loadEnvFile; /** * Модуль для работы с конфигурацией окружения * * Предоставляет функционал для: * - Загрузки переменных окружения из файла .env * - Типизации конфигурационных параметров * - Управления токенами для различных платформ * - Настройки подключения к базе данных */ const util_1 = require("./standard/util"); const path = __importStar(require("path")); /** * Загружает переменные окружения из файла .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} Если файл не найден или не может быть прочитан */ function loadEnvFile(envPath) { const fileData = (0, util_1.freadSync)(path.resolve(envPath)); if (fileData.success) { const envContent = fileData.data; const envVars = {}; envContent.split('\n').forEach((line) => { const trimmedLine = line.trim(); if (trimmedLine && !trimmedLine.startsWith('#')) { const [key, ...valueParts] = trimmedLine.split('='); const value = valueParts.join('=').trim(); if (key && value) { envVars[key.trim()] = value.replace(/^["']|["']$/g, ''); } } }); return { status: true, data: envVars }; } else { return { status: false, error: `Error loading .env file: ${fileData.error || 'Unknown error'}`, }; } }