Saltar al contenido principal
Logo Light

Bienvenido a Tryo

Una librería moderna y tipada para el manejo de errores que hace que las operaciones asíncronas sean predecibles y resilientes.

Características

No más bloques try-catch. Obtén uniones discriminadas con soporte completo de TypeScript.
const result = await runner.run(() => apiCall());
if (result.ok) {
  // TypeScript sabe que data está disponible
  console.log(result.data);
}
Backoff exponencial integrado con jitter para prevenir el problema de thundering herd.
await runner.run(() => unstableApi(), {
  retry: {
    maxRetries: 3,
    strategy: RetryStrategies.exponential(1000),
  }
});
Ejecuta múltiples operaciones con paralelismo controlado.
await runner.all(tasks, { 
  concurrency: 5 
});
Soporte de primera clase para AbortController y cancelación elegante.
await runner.run(() => fetch('/api', { signal }), {
  ignoreAbort: true
});

Instalación

npm install tryo

Ejemplo Rápido

import tryo from "tryo";

const runner = tryo();

const result = await runner.run(() => fetch("https://api.example.com/users"), {
  retry: {
    maxRetries: 3,
    strategy: RetryStrategies.fixed(1000),
  },
  hooks: {
    onError: (error) => console.error(error),
  }
});

if (result.ok) {
  const users = await result.data.json();
  console.log(users);
}
Consejo Pro: Usa tryo() una vez y reutilízalo en tu aplicación para un manejo de errores consistente.

Siguientes Pasos