Перейти к основному содержимому

Helpers

Пакет @churchapps/helpers предоставляет базовые утилиты, используемые всеми проектами ChurchApps, как на фронтенде, так и на бэкенде. Он фреймворк-независим и включает общие помощники, такие как DateHelper, ApiHelper, CurrencyHelper, плюс общие интерфейсы TypeScript, которые образуют контракт данных между приложениями и API.

Перед началом работы

Кто это потребляет

Каждый ChurchApps API (основной Api, AskApi и LessonsApi) и каждый фронтенд веб-приложений (B1Admin, B1App, B1Transfer, LessonsApp) зависит от этого пакета напрямую. Фронтенды также получают многие его экспорты (ApiHelper, DateHelper, UserHelper и другие интерфейсы) переэкспортированные через @churchapps/apphelper. Другие общие пакеты объявляют это как peer зависимость, так что каждое приложение разрешает ровно одну копию.

Настройка для локальной разработки

Этот пакет находится в рабочем пространстве Packages рядом с другими общими библиотеками:

  1. Клонируйте рабочее пространство:

    git clone https://github.com/ChurchApps/Packages.git
  2. Установите зависимости в корне рабочего пространства:

    cd Packages && yarn install
  3. Соберите (компилирует TypeScript в dist/):

    yarn workspace @churchapps/helpers build

    Или запустите yarn build в корне для сборки каждого пакета в порядке зависимостей.

Для тестирования изменений в потребляющем проекте используйте временный Yarn portal — см. Локальная разработка в потребляющем приложении.

Публикация

Выпуски выполняются через changesets вместо ручного изменения версии:

  1. Запустите yarn changeset в корне рабочего пространства и выберите @churchapps/helpers с подходящим типом bump; зафиксируйте сгенерированный файл changeset с вашим изменением.
  2. Когда будете готовы к выпуску, запустите yarn publish-all в корне — он изменяет версии, пишет CHANGELOGs, создаёт в порядке зависимостей и публикует в npm.

Новые общие интерфейсы идут в helpers/src/interfaces/ и переэкспортируются через package barrel. Каталог типов элементов конструктора веб-сайтов (ElementTypes.ts — 35 типов с их schemas ответов) также находится здесь; это контракт, общий для средств визуализации apphelper, форм редактора B1Admin и запросов генерирования AI (см. Архитектура конструктора веб-сайтов).

Предупреждение

Поскольку этот пакет используется каждым проектом ChurchApps, изменения здесь имеют широкое влияние. Выпуск helpers автоматически изменяет apihelper и apphelper, поэтому их диапазоны зависимостей остаются текущими. Тестируйте с Yarn portal как минимум в одном потребляющем API и одном потребляющем веб-приложении перед публикацией.

Связанные статьи

  • ApiHelper — серверные утилиты, которые зависят от этого пакета
  • AppHelper — React-компоненты, которые зависят от этого пакета
  • Обзор общих библиотек — установка рабочего пространства, поток выпуска и локальный рабочий процесс ссылок