Helpers
Пакет @churchapps/helpers предоставляет базовые утилиты, используемые всеми проектами ChurchApps, как на фронтенде, так и на бэкенде. Он фреймворк-независим и включает общие помощники, такие как DateHelper, ApiHelper, CurrencyHelper, плюс общие интерфейсы TypeScript, которые образуют контракт данных между приложениями и API.
Перед началом работы
- Установите Node.js и Git — см. Предварительные требования
- Ознакомьтесь с установкой рабочего пространства Packages и потоком выпуска
Кто это потребляет
Каждый ChurchApps API (основной Api, AskApi и LessonsApi) и каждый фронтенд веб-приложений (B1Admin, B1App, B1Transfer, LessonsApp) зависит от этого пакета напрямую. Фронтенды также получают многие его экспорты (ApiHelper, DateHelper, UserHelper и другие интерфейсы) переэкспортированные через @churchapps/apphelper. Другие общие пакеты объявляют это как peer зависимость, так что каждое приложение разрешает ровно одну копию.
Настройка для локальной разработки
Этот пакет находится в рабочем пространстве Packages рядом с другими общими библиотеками:
-
Клонируйте рабочее пространство:
git clone https://github.com/ChurchApps/Packages.git -
Установите зависимости в корне рабочего пространства:
cd Packages && yarn install -
Соберите (компилирует TypeScript в
dist/):yarn workspace @churchapps/helpers buildИли запустите
yarn buildв корне для сборки каждого пакета в порядке зависимостей.
Для тестирования изменений в потребляющем проекте используйте временный Yarn portal — см. Локальная разработка в потребляющем приложении.
Публикация
Выпуски выполняются через changesets вместо ручного изменения версии:
- Запустите
yarn changesetв корне рабочего пространства и выберите@churchapps/helpersс подходящим типом bump; зафиксируйте сгенерированный файл changeset с вашим изменением. - Когда будете готовы к выпуску, запустите
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-компоненты, которые зависят от этого пакета
- Обзор общих библиотек — установка рабочего пространства, поток выпуска и локальный рабочий процесс ссылок