umbot
    Preparing search index...

    Class AppContext<TDbInfo, TQuery>

    Внутренний класс для хранения состояния и конфигурации приложения. Используется внутри Bot для хранения состояния и конфигурации

    Разработчикам обычно НЕ нужно создавать экземпляры этого класса напрямую. Вместо этого используйте методы класса Bot:

    • bot.getAppContext() - получить доступ к контексту
    • bot.setAppConfig() - настроить конфигурацию
    • bot.setPlatformParams() - настроить параметры платформ

    Этот класс содержит:

    • Конфигурацию приложения (IAppConfig)
    • Параметры платформ (IAppParam)
    • Регистрацию команд и интентов
    • Логирование и метрики
    • Подключение к БД
    // НЕ ТАК:
    const appContext = new AppContext();

    // ТАК (правильно):
    const bot = new Bot();
    const appContext = bot.getAppContext(); // если нужен прямой доступ

    Type Parameters

    Index

    Constructors

    Properties

    appConfig: Required<IAppConfig> = ...

    Конфигурация приложения

    appMode: TAppMode = 'dev'

    Определяет режим работы приложения

    command: CommandReg = ...

    Все зарегистрированные команды и шаги

    database: {
        adapter?: IDatabaseAdapter;
        databaseInfo?: TDbInfo;
        isSendConnect?: boolean;
    } = {}

    Информация по подключению к базе данных.

    Type Declaration

    • Optionaladapter?: IDatabaseAdapter

      Адаптер для работы с базой данных

    • OptionaldatabaseInfo?: TDbInfo

      Данные, необходимые адаптеру для работы

    • OptionalisSendConnect?: boolean

      Флаг, определяющий вызывался метод для подключения к базе данных или нет

    httpClient: THttpClient = global.fetch

    Кастомный HTTP-клиент для выполнения всех исходящих запросов фреймворка. По умолчанию используется глобальный fetch. Вы можете заменить его на любой совместимый клиент (например, axios, undici, got), реализующий интерфейс:

    (input: RequestInfo, init?: RequestInit) => Promise<Response>
    
     *  Это позволяет:
    
    • добавлять retry-логику, таймауты, circuit breaker;
    • внедрять tracing, метрики или логирование всех запросов;
    • мокать сетевые вызовы в тестах;
    • использовать альтернативные HTTP-библиотеки.
    const bot = new Bot();
    const ctx = bot.getAppContext();
    ctx.httpClient = async (url, options) => {
    // добавляем таймаут 5 сек
    const controller = new AbortController();
    const id = setTimeout(() => controller.abort(), 5000);
    try {
    const res = await fetch(url, { ...options, signal: controller.signal });
    clearTimeout(id);
    return res;
    } catch (e) {
    clearTimeout(id);
    throw e;
    }
    };
    platformParams: IAppParam = ...

    Параметры приложения

    platforms: IPlatform<TQuery> = {}

    Список подключенных платформ

    plugins: TAppPlugin = {}

    Список подключенных плагинов

    Accessors

    • get regexpGroup(): Map<string, IGroupData>

      Получение всех зарегистрированных команд, которые распределены по группам. В группу добавляются только команды с регулярными выражениями. Группы используются для оптимизации поиска нужной команды

      Returns Map<string, IGroupData>

    • get usedMetric(): boolean

      Возвращает флаг, который говорит о том необходимо собирать метрики или нет

      Returns boolean

    Methods

    • Закрывает все подключения, для корректного завершения работы приложения

      Returns Promise<void>

    • Логирование информации

      Parameters

      • ...args: unknown[]

      Returns void

    • Логирование ошибки

      Parameters

      • str: string
      • Optionalmeta: Record<string, unknown>

      Returns void

    • Логирование метрики

      Parameters

      • name: string

        имя метрики

      • value: unknown

        значение

      • label: Record<string, unknown>

        Дополнительные метаданные

      Returns void

    • Логирование предупреждения

      Parameters

      • str: string
      • Optionalmeta: Record<string, unknown>

      Returns void

    • Сохраняет данные в JSON файл

      Parameters

      • fileName: string

        Имя файла

      • data: unknown

        Данные для сохранения

      Returns Promise<boolean>

      true в случае успешного сохранения

    • Устанавливает конфигурацию приложения

      Parameters

      • config: Partial<IAppConfig>

        Пользовательская конфигурация

      Returns void

    • Позволяет установить свою реализацию для логирования

      Parameters

      Returns void

    • Устанавливает параметры приложения

      Parameters

      • params: IAppParam

        Пользовательские параметры

      Returns void