Primeros pasos

Esta documentación corresponde a 0.2.0, pendiente de publicación con la etiqueta latest de npm. Usa los siguientes comandos después de que se publique la versión.

bun add fetchzen

El paquete usa únicamente ESM y no tiene dependencias de ejecución. Usa Node.js 20+ o un navegador moderno, Bun, Deno o un entorno edge con las API estándar de Fetch.

Ejecuta esto en un módulo TypeScript. El endpoint público devuelve un objeto JSON sin envoltura, así que selecciona rest explícitamente:

import { Http, rest } from "fetchzen";
type User = { id: number; name: string };
const api = Http.create("https://jsonplaceholder.typicode.com", {
preset: rest,
cache: false,
});
const { data, status } = await api.get<User>("/users/1");
console.log(data.name, status);

rest devuelve { data, status, headers, response }. El genérico describe el JSON esperado; no valida los datos del servidor. Agrega un esquema si necesitas validación en tiempo de ejecución.

cache: false crea un cliente independiente. Para compartirlo en tu aplicación, sigue la receta de cliente compartido. Si omites preset, el predeterminado es envelope: usa payload en lugar de data y comprueba las convenciones de error de la API. Consulta presets.

Con el mismo api, llama a safe.get con los mismos argumentos:

const { data: result, error } = await api.safe.get<User>("/users/1");
if (error) {
console.error(error.message);
} else {
console.log(result.data.name);
}

Los métodos safe devuelven un resultado data con la forma del preset o un Error. Siguen ejecutando la validación y los hooks de error. Los métodos normales rechazan la promesa al fallar; consulta errores para inspeccionar errores HTTP o usar try/catch.