Genéricos en run
Copiar
import { run } from "runtry";
type Item = { id: string };
const r = await run<Item>(() => fetch("/api").then((x) => x.json()));
Helpers de resultado en runAll
Copiar
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
Copiar
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,
})),
],
});