Pular para o conteúdo principal
Preview — Jelou Functions está em preview. A API e o comportamento podem mudar sem aviso prévio.

Quando usar app() vs define()?

Se o seu projeto tem um único handler, use define(). Se você precisa agrupar múltiplas operações — por exemplo, enviar e ler e-mails do mesmo serviço — use app().

Exemplo básico

index.ts

Testes locais

Inicie o servidor com jelou functions dev e teste cada ferramenta na sua rota:
Se você enviar um campo inválido, recebe um 400 com detalhes:

API

Assinatura de tipo:

AppConfig

Rotas geradas automaticamente

As chaves do seu objeto tools são automaticamente convertidas para kebab-case para gerar rotas HTTP: Para personalizar uma rota, use config.path no define() individual:

Combinação de config

A config global do app() se aplica a todas as ferramentas. Cada define() pode sobrescrever valores específicos:
Neste exemplo, fast tem um timeout de 5 segundos e slow herda os 30 segundos globais. Ambas compartilham a configuração de CORS.

Endpoint de health

No modo app, /__health retorna informações sobre todas as ferramentas:

Type guards

Use isEdgeApp() e isEdgeFunction() para identificar o tipo de export em tempo de execução:

Cron multi-tool

Cada ferramenta dentro de app() pode ter seus próprios schedules de cron independentes. As requisições de cron são enviadas para a rota específica de cada ferramenta.
O limite de 10 schedules de cron é agregado entre todas as ferramentas de um app(). Se dailyCleanup tiver 3 e hourlySync tiver 4, só restam 3 disponíveis.

MCP multi-tool

Um único servidor MCP em /mcp registra automaticamente todas as ferramentas do app(). Para excluir uma ferramenta do registro MCP, use mcp: false na sua config:
Neste exemplo, os agentes de IA só descobrem publicTool via MCP. internalTool só é acessível via HTTP direto na sua rota /internal-tool.

Rotas expostas (modo app)

Problemas comuns

As chaves de tools são convertidas para kebab-case. Se sua chave é sendEmail, a rota é /send-email, não /sendEmail.Verifique as rotas reais com o health check:

Próximos passos

Testing

Aprenda a testar funções multi-tool com createMockApp().

MCP

Configure o servidor MCP unificado para seus agentes de IA.

Cron

Schedules independentes por ferramenta dentro de app().