Documentation Index
Fetch the complete documentation index at: https://acme-c84a37e5.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Signature
run<T>(fn, options?): Promise<RunResult<T>>
Key Options
- Normalization and transformation:
toError, mapError
- Callbacks:
onError, onSuccess, onFinally, onRetry, onAbort
- Control:
ignoreAbort, signal, timeout
- Retries:
retries, retryDelay, shouldRetry, jitter, backoffStrategy, maxDelay
- Observability:
logger
- Cleanup:
cleanup
- Circuit Breaker:
circuitBreaker
Basic Example
import { run } from "tryo";
const r = await run(() => fetch("/api").then((r) => r.json()));
Abort and Timeout
const controller = new AbortController();
const r = await run(() => fetch("/api", { signal: controller.signal }), {
ignoreAbort: true,
timeout: 1000,
onAbort: (s) => console.log("aborted"),
});
Retries with Backoff and Jitter
const r = await run(() => fetch("/api"), {
retries: 4,
retryDelay: 300,
backoffStrategy: "exponential",
jitter: { ratio: 0.5, mode: "full" },
});
Per-Call Circuit Breaker
const r = await run(() => fetch("/api"), {
circuitBreaker: { failureThreshold: 2, resetTimeout: 1000, halfOpenRequests: 1 },
});