TypeScript

Instala y usa @adlass/api.

npm install @adlass/api

El paquete exporta createAdlassClient, el helper paginate, la clase AdlassError y los tipos generados paths, components y operations. Funciona en cualquier entorno con fetch: Node.js 20+, Deno, Bun, Cloudflare Workers y Vercel Edge.

Crear un cliente

import { createAdlassClient } from "@adlass/api";

const client = createAdlassClient({
  token: process.env.ADLASS_API_KEY!,
  // baseUrl: "https://dev.adlass.io/v1", // entorno de desarrollo, claves adl_test_
  // maxRetries: 3, maxRetryDelayMs: 60_000,
});

client es un cliente de openapi-fetch. Rutas, parámetros y cuerpos se verifican en tiempo de compilación contra el esquema.

Leer

const { data, error, response } = await client.GET("/spaces/{space_id}", {
  params: { path: { space_id: "123e4567-e89b-42d3-a456-426614174000" } },
});
if (error) throw new Error(`${response.status}: ${error.code}`);
console.log(data.name);

error es el cuerpo problem analizado, con code, detail y request_id. Conserva request_id para las solicitudes de soporte.

Escribir

const { data } = await client.POST("/spaces", {
  body: { name: "Documentos de clientes" },
  headers: { "Idempotency-Key": orderId }, // opcional; si no, se genera un UUID
});

Paginar

import { paginate } from "@adlass/api";

for await (const document of paginate((cursor) =>
  client.GET("/documents", { params: { query: { limit: 100, cursor } } }),
)) {
  console.log(document.file_name);
}

paginate sigue next_cursor hasta que sea null y lanza AdlassError cuando falla una página.

Reintentos y cancelación

Las respuestas 429 se reintentan hasta maxRetries veces, esperando Retry-After o un backoff exponencial, nunca más de maxRetryDelayMs. Pasa un AbortSignal mediante signal en cualquier solicitud para cancelar esperas y peticiones. Las redirecciones se rechazan para que una clave nunca salga del origen de la API.

En esta página