openFetch — Español (es)
@hamdymohamedak/openfetch es un cliente HTTP pequeño y sin dependencias para cualquier runtime de JavaScript que exponga fetch. Añade instancias con valores por defecto, interceptores de petición/respuesta, middleware componible, reintentos opcionales con retroceso exponencial, caché en memoria para GET/HEAD, errores estructurados y una protección de URL opcional para URLs no confiables — sin acoplar a React, window ni XHR heredado.
Objetivos de diseño
- Un solo transporte: solo
fetch(Node 18+, Bun, Deno, Workers, navegadores). - Sin polyfills obligatorios en entornos soportados.
- Seguro en servidor: adecuado para SSR y React Server Components.
Páginas
- Primeros pasos — instalación, exportación por defecto,
createClient, primeras peticiones - Configuración — opciones de petición, forma de la respuesta,
unwrapResponse - Interceptores y middleware — orden de ejecución,
use(), middleware propio - Reintentos y caché —
createRetryMiddleware,createCacheMiddleware, TTL / SWR - Errores y seguridad —
OpenFetchError, códigos, registro seguro,assertSafeHttpUrl
API pública (resumen)
| Exportación | Función |
|---|---|
| default | Instancia ya creada con createClient() |
createClient / create | Nuevo cliente con initialDefaults opcionales |
OpenFetchError, isOpenFetchError | Errores tipados y comprobación de tipo |
InterceptorManager | Pila de interceptores (normalmente vía client.interceptors) |
createRetryMiddleware | Fábrica de middleware de reintentos |
MemoryCacheStore, createCacheMiddleware, appendCacheKeyVaryHeaders | Caché en memoria |
| Tipos | OpenFetchConfig, OpenFetchResponse, Middleware, OpenFetchClient, etc. |
assertSafeHttpUrl | Protección opcional SSRF para IPs literales / localhost |
Requisitos
Node.js 18+ o cualquier runtime con fetch y AbortController.
