Logotipo de Aurabase
aurabasedocumentos
documentos›Edge Functions›SDK reference

SDK de JavaScript: funciones

Cada método de aura.functions, su firma, el rol que necesita y lo que devuelve.

8 min leer·Nivel referencia·Revisado el 12 oct 2026
Este texto en inglés se generó automáticamente a partir del original en francés y aún no ha sido revisado.
Esta página fue traducida automáticamente. La versión en inglés es autorizada.
#
Configuración

1. Consigue el cliente

aura.functions es un FunctionsService. Casi nunca lo construyes tú mismo.

client.tstypescript
import { createClient } from '@aurabase/aurabase-js'

const aura = createClient('https://my-app.aurabase.cloud', 'aura_anon_…')
aura.functions.invoke('hello')

El paquete @aurabase/functions se instala con @aurabase/aurabase-js. Instálelo solo si crea su propio cliente desde @aurabase/core. Requiere Node.js 20 o posterior y envía módulos ES y CommonJS con declaraciones de tipo.

Cada método devuelve Promise<AuraResponse<T>>, un objeto { data, error } que nunca arroja:

casodataerror
Éxitoel valornull
Éxito sin contenido (204, cuerpo vacío)nullnull
fracasonullun AuraError

Pruebe data en lugar de error cuando necesite el valor: solo entonces TypeScript sabe que no es null.

MétodoRol necesario
invokeclave pública (anon), usuario o service_role
cualquier otro métodoservice_role (solo servidor)
#
llamar

2. invocar

signaturetypescript
invoke<T = unknown>(
  name: string,
  options?: {
    body?: unknown
    method?: string
    path?: string
    headers?: Record<string, string>
    signal?: AbortSignal
    timeout?: number
    responseType?: 'json' | 'text' | 'blob' | 'arrayBuffer'
  },
): Promise<AuraResponse<T>>
OpciónPredeterminado
bodyningunoSerializable en JSON. Una matriz escrita Blob, ArrayBuffer, FormData, URLSearchParams o ReadableStream devuelve el error invalid_body sin ninguna solicitud.
method'POST'El método que ve la función.
path'/'El camino que ve la función.
headersningunoEncabezados dados a la función. La plataforma descarta authorization, apikey, x-request-id y x-aura-*.
timeoutvalor predeterminado del cliente, 30 sMilisegundos. Cancela la llamada y devuelve el código timeout.
signalningunoTu propio AbortSignal. Una llamada cancelada devuelve el código timeout.
responseType'json'Cómo se decodifica data: un valor analizado, una cadena, un Blob o un ArrayBuffer

name está codificado en la URL, por lo que un valor que contenga /, ? o # no puede abandonar su posición. Un nombre que contenga tales caracteres simplemente no se encuentra.

invoke actualiza primero una sesión de usuario caducada, envía el JWT del usuario cuando hay uno y nunca vuelve a intentar una llamada.

Cómo usarlo: Invoca una función. Cómo falla: Errores, tiempos de espera y reintentos.

#
Administrar

3. enumerar y obtener

signaturestypescript
list(): Promise<AuraResponse<FunctionDef[]>>
get(nameOrId: string): Promise<AuraResponse<FunctionDef>>

Ambos necesitan una clave service_role. get acepta el nombre o el id ; Si una función tiene el nombre de una identificación, el nombre gana. Un FunctionDef contiene el código fuente y las variables de la función, por eso una clave pública recibe 403.

No existe ningún método para implementar, actualizar o eliminar una función, o para escribir secretos: utilice la API HTTP o la CLI .

#
Antecedentes

4. Empleos

signaturestypescript
enqueueJob(
  functionName: string,
  options?: { payload?: unknown; delaySecs?: number; maxAttempts?: number },
): Promise<AuraResponse<Job>>

listJobs(options?: { status?: string; limit?: number }): Promise<AuraResponse<Job[]>>
getJob(jobId: string): Promise<AuraResponse<Job>>
  • enqueueJob devuelve { code: 'bad_request', status: 400 } sin ninguna solicitud cuando functionName está vacío o solo tiene espacios y, en caso contrario, recorta el nombre.
  • listJobs filtra en status (pending, running, completed, failed, dead) y devuelve entre 1 y 500 trabajos, 50 de forma predeterminada.
  • Reintentar trabajos inactivos no tiene ningún método: consulte la cola de mensajes no entregados .
#
Horario

5. Cron

signaturestypescript
listCronJobs(): Promise<AuraResponse<CronJob[]>>
createCronJob(
  name: string,
  schedule: string,
  functionName: string,
  options?: { payload?: unknown },
): Promise<AuraResponse<CronJob>>
deleteCronJob(name: string): Promise<AuraResponse<null>>

schedule tiene 5 o 6 campos, en UTC. deleteCronJob toma el nombre y devuelve 404 para un nombre desconocido. No hay getCronJob o updateCronJob.

#
Referencia

6. Tipos y errores

Exportado por @aurabase/aurabase-js y @aurabase/functions:

importstypescript
import {
  FunctionsHttpError,
  FunctionsRelayError,
  isRelayStatus,
  type FunctionsResponseType,
} from '@aurabase/aurabase-js'
Exportarque es
FunctionsHttpErrorSu función (o una ruta de gestión) respondió con un error. error.context contiene el cuerpo que devolvió.
FunctionsRelayErrorLa plataforma falló: red (status 0) o 502, 503, 504 producida por la puerta de enlace o el tiempo de ejecución.
isRelayStatus(status)true para 0, 502, 503, 504.
FunctionsResponseType`'json' \

Ambas clases de error extienden AuraError, por lo que isAuraError(error) es verdadero. AuraError tiene status, code, message, details, retryAfter y los captadores isNotFound, isUnauthorized, isForbidden y isRateLimited.

Tipos de datos, exportados por @aurabase/aurabase-js:

TipoCampos
FunctionDefid, project_id, name, runtime, code, code_hash, env_vars, permissions, is_active, created_at, updated_at
FunctionPermissionsallow_net: string[], memory_mb: number, timeout_secs: number
Jobid, project_id, function_name, status, payload, attempts, max_attempts, error?, scheduled_at, started_at?, created_at, completed_at?
CronJobid, project_id, name, schedule, function_name, payload, is_active, last_run?, next_run?, created_at
AuraResponse<T>{ data, error, meta? }
Propiedades compatibles con versiones anteriores

Cuando una función devuelve un objeto JSON, data también incluye dos propiedades no enumerables, body y status, que se conservan para el código escrito en versiones anteriores. No confíe en ellos en el código nuevo.

Última actualización · 12 oct 2026