Saltar al contenido principal

Genéricos en run

import { run } from "runtry";

type Item = { id: string };
const r = await run<Item>(() => fetch("/api").then((x) => x.json()));

Helpers de resultado en runAll

import { runAll, isSuccess, type SuccessResult, type ErrorResult } from "runtry";

const rs = await runAll<number>([async () => 1]);
const ok: SuccessResult<number>[] = rs.filter(isSuccess);
const ko: ErrorResult<any>[] = rs.filter((r) => r.status === "error");

Reglas y tipos

import { createRunner, errorRule } from "runtry";

type MyError = { code: "HTTP"; message: string; status?: number };

const runner = createRunner({
  rules: [
    errorRule.when((e): e is { status: number } => typeof (e as any)?.status === "number").toError<MyError>((e) => ({
      code: "HTTP",
      message: "failed",
      status: (e as any).status,
    })),
  ],
});