BookinglyTech News
Software

tanstack-fetch: un cliente HTTP tipado para usar con TanStack Query

El paquete convierte las respuestas HTTP fallidas en errores tipados que TanStack Query puede consumir, y añade manejadores globales, plugins e interceptores. No es un proyecto oficial de TanStack.

2 min de lecturaDev.to0 vistas

Un desarrollador independiente ha publicado tanstack-fetch, un cliente HTTP tipado que se enchufa directamente como queryFn de TanStack Query. El paquete no es oficial del proyecto TanStack: es una iniciativa aparte, disponible en npm y con el código en GitHub.

El problema que ataca lo conoce cualquiera que haya usado fetch nativo dentro de Query. fetch no rechaza la promesa cuando el servidor devuelve un 500: devuelve una respuesta igualmente. En un queryFn eso significa que la consulta se marca como exitosa y el fallo HTTP se cuela en la capa de datos. tanstack-fetch convierte esas respuestas en una FetchError con status, code y body, y expone un guard isFetchError para comprobarlo desde el estado de la query.

Manejo de errores y composición

Sobre createFetch se configuran manejadores globales para 401, 403, 404 y errores de servidor, o un mapa onStatus con claves por código, comodines del tipo "5xx" y una entrada default. Los handlers se ejecutan antes de lanzar, así que Query recibe igualmente el estado de error. Para un 401, por ejemplo, se puede limpiar el token y redirigir al login en un único sitio en vez de repetir la lógica en cada consulta.

La parte de extensibilidad va por plugins con nombre —trace, ssr-forward, retry-idempotent, sse-resume— e interceptores ordenados que también se pueden registrar en caliente. La intención declarada es mantener el núcleo pequeño y dejar que cada aplicación componga encima lo que necesite.

Hay integración con React, y es opcional: FetchProvider y useFetch desde tanstack-fetch/react. En Node exige como mínimo la versión 18, porque depende del Fetch nativo.

Lo que queda por comprobar

La señal de cancelación de Query se pasa tal cual al cliente, sin mecanismo propio, que es el detalle que más adelgaza el código de las consultas.

Conviene mirarlo con calma antes de meterlo en producción. Es un paquete de un autor, y en la información publicada no aparecen licencia, versión ni datos de adopción. Compite en un terreno donde Axios y ky llevan años de rodaje. Lo razonable pasa por revisar el repositorio, ver qué licencia tiene y a qué ritmo se mueve, y decidir si el ahorro de código justifica depender de un proyecto joven. Para quien ya vive dentro de TanStack Query el encaje es evidente; para el resto, es una dependencia más que mantener.