Repolode
L-Blondy

L-Blondy/up-fetch

Um construtor de cliente fetch em TypeScript que adiciona validação de schema, respostas tipadas, novas tentativas, timeouts e acompanhamento de progresso ao fetch nativo.

Estrelas
1,409
Forks
22
Issues abertas
2
Último commit
há 2 meses

O que é?

upfetch é um construtor de cliente fetch que envolve a API fetch nativa. Você cria uma instância com opções padrão, como baseUrl, headers, timeout e configurações de retry, e depois a chama como faria com fetch. Parâmetros e corpos das requisições podem ser passados como objetos simples, e as respostas JSON são analisadas automaticamente.

A biblioteca aceita qualquer schema compatível com a especificação Standard Schema, incluindo zod, valibot e arktype. Quando um schema é passado, a resposta é validada e retornada com o tipo inferido, e uma ResponseValidationError é lançada se houver incompatibilidade. Por padrão, erros de respostas não-OK são lançados como ResponseError, e tanto reject quanto parseRejected podem ser personalizados.

A biblioteca também oferece novas tentativas com número de tentativas, intervalo e condições configuráveis, timeouts por requisição, hooks de ciclo de vida e callbacks de progresso e streaming para upload e download. O pacote é publicado no npm como up-fetch e funciona em navegadores, Node.js, Bun, Deno, Cloudflare Workers e Vercel Edge Runtime.

Recursos principais

  • 01Validação Standard Schema com zod, valibot, arktype e outras bibliotecas compatíveis
  • 02Objetos simples para parâmetros de consulta e corpos de requisição, com serialização JSON automática
  • 03Novas tentativas com número de tentativas, intervalo e condições configuráveis
  • 04Timeouts por requisição e padrão
  • 05Progresso de upload e download, além de callbacks de streaming
  • 06Hooks de ciclo de vida para requisição, resposta, sucesso, erro e novas tentativas

Casos de uso

  • Criar um cliente de API tipado em um frontend TypeScript com validação de resposta em tempo de execução
  • Adicionar novas tentativas e timeouts a chamadas para APIs de terceiros não confiáveis
  • Exibir barras de progresso de upload ou download em um app web
  • Consumir respostas em streaming, como saídas de chats com IA

Início rápido

  1. 1

    Instale o pacote pelo npm

    npm i up-fetch
  2. 2

    Crie uma instância de upfetch que envolva o fetch nativo

  3. 3

    Faça uma solicitação com validação de esquema opcional

Antes de usar

  • A validação de esquema requer uma biblioteca separada, como zod ou valibot.

Tópicos

Perguntas frequentes

O que é up-fetch?
Um construtor de cliente fetch em TypeScript que adiciona validação de schema, respostas tipadas, novas tentativas, timeouts e acompanhamento de progresso ao fetch nativo. upfetch é um construtor de cliente fetch que envolve a API fetch nativa. Você cria uma instância com opções padrão, como baseUrl, headers, timeout e configurações de retry, e depois a chama como faria com fetch. Parâmetros e corpos das requisições podem ser passados como objetos simples, e as respostas JSON são analisadas automaticamente.
up-fetch é gratuito? Qual é a licença?
up-fetch é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
up-fetch ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de up-fetch foi em 1 de set. de 2026.
Para que posso usar up-fetch?
Criar um cliente de API tipado em um frontend TypeScript com validação de resposta em tempo de execução Adicionar novas tentativas e timeouts a chamadas para APIs de terceiros não confiáveis Exibir barras de progresso de upload ou download em um app web Consumir respostas em streaming, como saídas de chats com IA
Como instalar up-fetch?
Instale o pacote pelo npm: npm i up-fetch Crie uma instância de upfetch que envolva o fetch nativo Faça uma solicitação com validação de esquema opcional
Onde consigo up-fetch?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/L-Blondy/up-fetch

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados