Base44 Coder
Construye apps en la plataforma Base44 usando el SDK de JavaScript de Base44.⚡ ACCIÓN INMEDIATA REQUERIDA - Lee esto primero
Esta habilidad se activa ante CUALQUIER mención de “base44” o cuando existe una carpetabase44/. NO leas archivos de documentación ni busques en la web antes de actuar.
Tu primera acción DEBE ser:
- Comprueba si
base44/config.jsoncexiste en el directorio actual - Si SÍ (escenario de proyecto existente):
- Esta habilidad (base44-sdk) maneja la solicitud
- Implementa funciones usando el SDK de Base44
- NO uses base44-cli a menos que el usuario solicite explícitamente comandos CLI
- Si NO (escenario de nuevo proyecto):
- Transfiere a la habilidad base44-cli para la inicialización del proyecto
- Esta habilidad no puede ayudar hasta que el proyecto se inicialice
Cuándo usar esta habilidad vs base44-cli
Usa base44-sdk cuando:- Construyas funciones en un proyecto de Base44 EXISTENTE
base44/config.jsoncya existe en el proyecto- Los imports del SDK de Base44 están presentes (
@base44/sdk) - Escribas código JavaScript/TypeScript usando módulos del SDK de Base44
- Implementes funcionalidad, componentes o funciones
- El usuario menciona: “implementar”, “construir una función”, “añadir funcionalidad”, “escribir código para”
- El usuario dice “crear una app [tipo]” y ya existe un proyecto de Base44
- ❌ Inicializar nuevos proyectos de Base44 (usa
base44-clien su lugar) - ❌ Directorios vacíos sin configuración de Base44
- ❌ Cuando el usuario dice “crear un nuevo proyecto/app/sitio de Base44” y no existe proyecto
- ❌ Comandos CLI como
npx base44 create,npx base44 deploy,npx base44 login(usabase44-cli)
base44-sdkasume que un proyecto de Base44 ya está inicializadobase44-clies un requisito previo parabase44-sdken nuevos proyectos- Si el usuario quiere “crear una app” y no existe un proyecto de Base44, usa
base44-cliprimero
- SI (el usuario menciona “crear/construir app” O “hacer un proyecto”):
- SI (el directorio está vacío O no existe
base44/config.jsonc): → Usa base44-cli (se necesita inicialización de proyecto) - SI NO: → Usa base44-sdk (el proyecto existe, construye funciones)
- SI (el directorio está vacío O no existe
Inicio rápido
⚠️ CRÍTICO: No alucines APIs
Antes de escribir CUALQUIER código de Base44, verifica los nombres de método contra esta tabla o QUICK_REFERENCE.md. El SDK de Base44 tiene nombres de método únicos. NO asumas patrones de Firebase, Supabase u otros SDKs.Autenticación - INCORRECTO vs CORRECTO
Funciones - INCORRECTO vs CORRECTO
Integraciones - INCORRECTO vs CORRECTO
Entidades - INCORRECTO vs CORRECTO
Módulos del SDK
Para la configuración del cliente y los modos de autenticación, consulta client.md.
TypeScript y registros de tipos
Cada archivo de referencia incluye una sección “Type Definitions” con interfaces y tipos de TypeScript para los métodos, parámetros y valores de retorno del módulo. Obtener entidades, funciones y agentes tipados: La CLI de Base44 genera tipos desde los recursos de tu proyecto (entidades, funciones, agentes), incluyendo augmentaciones aEntityTypeRegistry, FunctionNameRegistry y AgentNameRegistry, y las cablea en tu proyecto para que obtengas autocompletado y comprobación de tipos sin configuración manual. Para saber cómo generar tipos, usa la habilidad base44-cli.
Augmentación manual: También puedes augmentar los registros tú mismo en un archivo .d.ts; consulta las secciones Type Definitions en entities.md, functions.md y base44-agents.md.
Instalación
Instala el SDK de Base44:@base44/sdk. Instala siempre sin un especificador de versión para obtener la última versión.
Crear un cliente (apps externas)
Al crear un cliente en apps externas, SIEMPRE usaappId como nombre de parámetro:
appId (string) - Tu ID de aplicación de Base44
Parámetros opcionales:
token(string) - Token de usuario preautenticadooptions(object) - Opciones de configuraciónoptions.onError(function) - Manejador de errores global
Selección de módulo
¿Trabajas con datos de la app?- Crear/leer/actualizar/eliminar registros →
entities - Importar datos desde archivo →
entities.importEntities() - Actualizaciones en tiempo real →
entities.EntityName.subscribe()
- Login/registro/logout →
auth - Obtener usuario actual →
auth.me() - Actualizar perfil de usuario →
auth.updateMe() - Invitar usuarios →
users.inviteUser()
- Chatear con agentes de IA →
agents(requiere usuario registrado) - Crear nueva conversación →
agents.createConversation() - Gestionar conversaciones →
agents.getConversations() - Generar texto/JSON con IA →
integrations.Core.InvokeLLM() - Generar imágenes →
integrations.Core.GenerateImage()
- Ejecutar código del lado del servidor →
functions.invoke() - Necesitas acceso de administrador →
base44.asServiceRole.functions.invoke()
- Enviar correos →
integrations.Core.SendEmail() - Subir archivos →
integrations.Core.UploadFile() - APIs personalizadas →
integrations.custom.call() - OAuth con ámbito de app (cuenta del constructor de la app) →
asServiceRole.connectors.getConnection()(solo backend)
- Rastrear eventos personalizados →
analytics.track() - Registrar vistas de página/actividad →
appLogs.logUserInApp()
Patrones comunes
Filtrar y ordenar datos
Rutas protegidas (comprobar autenticación)
Llamada a función de backend
Acceso de rol de servicio
UsaasServiceRole en funciones de backend para operaciones de nivel administrador:
Frontend vs Backend
Las funciones de backend usan
Deno.serve() y createClientFromRequest(req) para obtener un cliente correctamente autenticado.
Esta página fue traducida usando IA. Para obtener la información más precisa y actualizada, consulta la versión en inglés.