Pular para o conteúdo principal

Helpers

O pacote @churchapps/helpers fornece utilitários base usados por todos os projetos do ChurchApps, tanto frontend quanto backend. Ele é agnóstico de framework e inclui helpers comuns como DateHelper, ApiHelper, CurrencyHelper, além das interfaces TypeScript compartilhadas que formam o contrato de dados entre aplicações e APIs.

Antes de Começar

Quem Consome Isto

Toda API ChurchApps (a API principal, AskApi e LessonsApi) e todo frontend web (B1Admin, B1App, B1Transfer, LessonsApp) depende deste pacote diretamente. Os frontends também obtêm muitas de suas exportações (ApiHelper, DateHelper, UserHelper e outras interfaces) re-exportadas através de @churchapps/apphelper. Os outros pacotes compartilhados o declaram como uma dependência de pares para que cada aplicação resolva exatamente uma cópia.

Configuração para Desenvolvimento Local

Este pacote vive no workspace Packages ao lado das outras bibliotecas compartilhadas:

  1. Clone o workspace:

    git clone https://github.com/ChurchApps/Packages.git
  2. Instale as dependências na raiz do workspace:

    cd Packages && yarn install
  3. Construa (compila TypeScript para dist/):

    yarn workspace @churchapps/helpers build

    Ou execute yarn build na raiz para construir cada pacote em ordem de dependência.

Para testar mudanças dentro de um projeto consumidor, use um portal Yarn temporário -- veja Desenvolvimento Local Contra uma Aplicação Consumidora.

Publicando

Lançamentos vão através de changesets em vez de bumps manuais de versão:

  1. Execute yarn changeset na raiz do workspace e selecione @churchapps/helpers com o tipo de bump apropriado; faça commit do arquivo changeset gerado com sua mudança.
  2. Quando pronto para lançar, execute yarn publish-all na raiz -- ele faz bump de versões, escreve CHANGELOGs, constrói em ordem de dependência e publica no npm.

Novas interfaces compartilhadas vão em helpers/src/interfaces/ e são re-exportadas através do barrel do pacote. O catálogo de tipos de elemento do website builder (ElementTypes.ts — 35 tipos com seus schemas de respostas) também vive aqui; é o contrato compartilhado pelos renderizadores do apphelper, pelos formulários do editor B1Admin e pelos prompts de geração de IA (veja Website Builder Architecture).

Aviso

Como este pacote é usado por todo projeto do ChurchApps, mudanças aqui têm um impacto amplo. Um lançamento de helpers automaticamente faz bump em apihelper e apphelper para que seus intervalos de dependência fiquem atuais. Teste com um portal Yarn em pelo menos uma API consumidora e uma aplicação web consumidora antes de publicar.

Artigos Relacionados