Skip to main content
Preview — Jelou Functions está en fase de vista previa. La API y el comportamiento pueden cambiar sin previo aviso.

¿Cuándo usar app() vs define()?

Si tu proyecto tiene un solo handler, usa define(). Si necesitas agrupar múltiples operaciones — por ejemplo, enviar y leer emails desde el mismo servicio — usa app().

Ejemplo básico

index.ts

Prueba local

Inicia el servidor con jelou functions dev y prueba cada tool en su ruta:
Si envías un campo inválido, recibes un 400 con detalles:

API

Firma de tipo:

AppConfig

Rutas auto-generadas

Tus keys del objeto tools se convierten automáticamente a kebab-case para generar las rutas HTTP: Para personalizar una ruta, usa config.path en el define() individual:

Combinación de config

La configuración global de app() se aplica a todos los tools. Cada define() puede sobreescribir valores específicos:
En este ejemplo, rapido tiene un timeout de 5 segundos y lento hereda los 30 segundos globales. Ambos comparten la configuración CORS.

Endpoint de salud

En modo app, /__health retorna información de todos los tools:

Guardas de tipo

Usa isEdgeApp() e isEdgeFunction() para identificar el tipo de export en runtime:

Multi-tool cron

Cada tool dentro de app() puede tener sus propios schedules cron independientes. Las peticiones cron se envían a la ruta específica de cada tool.
El límite de 10 schedules cron es agregado entre todos los tools de un app(). Si limpiezaDiaria tiene 3 y sincronizacionHoraria tiene 4, quedan 3 disponibles.

Multi-tool MCP

Un solo servidor MCP en /mcp registra automáticamente todos los tools del app(). Para excluir un tool del registro MCP, usa mcp: false en su config:
En este ejemplo, los agentes IA solo descubren toolPublico vía MCP. toolInterno solo es accesible por HTTP directo en su ruta /tool-interno.

Rutas expuestas (modo app)

Problemas comunes

Las keys de tools se convierten a kebab-case. Si tu key es enviarEmail, la ruta es /enviar-email, no /enviarEmail.Verifica las rutas reales con el health check:

Public per-tool

Puedes mezclar tools públicos y protegidos en el mismo app():
En /__health, cada tool reporta su estado public:
Consulta la guía de funciones públicas para más detalles sobre public y cómo validar webhooks.

Siguientes pasos

Pruebas

Aprende a probar funciones multi-tool con createMockApp().

MCP

Configura el servidor MCP unificado para tus agentes IA.

Cron

Schedules independientes por tool dentro de app().