Repolode
L-Blondy

L-Blondy/up-fetch

基于原生 fetch 的 TypeScript 客户端构建库,支持 schema 校验、重试、超时和进度跟踪。

Star
1,409
Fork
22
未关闭 Issue
2
最近提交
2个月前

这是什么?

upfetch 是一个包裹原生 fetch 的客户端构建库。创建实例时可以设置 baseUrl、headers、timeout、retry 等默认选项,之后的调用方式与 fetch 基本一致。params 和 body 可以直接传入普通对象,JSON 响应会自动解析。

它支持任何遵循 Standard Schema 规范的校验库,例如 zod、valibot 和 arktype。传入 schema 后,响应会被校验并带上推导出的类型,校验失败时抛出 ResponseValidationError。非 ok 的响应默认抛出 ResponseError,也可以通过 reject 和 parseRejected 自定义判断与错误结构。

此外,它提供可配置次数、延迟和条件的自动重试、单个请求超时、生命周期钩子,以及上传和下载的进度与流式回调。该包以 up-fetch 发布在 npm 上,可运行于浏览器、Node.js、Bun、Deno、Cloudflare Workers 和 Vercel Edge Runtime。

核心功能

  • 01通过 Standard Schema 支持 zod、valibot、arktype 等校验库
  • 02查询参数和请求体可直接使用普通对象,并自动序列化为 JSON
  • 03支持可配置次数、延迟和条件的自动重试
  • 04支持单个请求及全局默认的超时设置
  • 05提供上传、下载进度和流式数据回调
  • 06提供请求、响应、成功、失败和重试等生命周期钩子

适用场景

  • 在 TypeScript 前端中构建带运行时校验的类型安全 API 客户端
  • 为不稳定的第三方 API 调用添加重试和超时
  • 在 Web 应用中展示文件上传或下载进度
  • 消费流式响应,例如 AI 对话的逐段输出

快速上手

  1. 1

    从 npm 安装该包

    npm i up-fetch
  2. 2

    基于原生 fetch 创建 upfetch 实例

  3. 3

    发起带可选架构校验的请求

使用前须知

  • 架构校验需要单独安装 zod 或 valibot 等库。

标签

常见问题

up-fetch 是什么?
基于原生 fetch 的 TypeScript 客户端构建库,支持 schema 校验、重试、超时和进度跟踪。 upfetch 是一个包裹原生 fetch 的客户端构建库。创建实例时可以设置 baseUrl、headers、timeout、retry 等默认选项,之后的调用方式与 fetch 基本一致。params 和 body 可以直接传入普通对象,JSON 响应会自动解析。
up-fetch 可以免费使用吗?用的什么许可证?
up-fetch 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
up-fetch 还在维护吗?
半年内有更新。up-fetch 最近一次提交是在 2026年9月1日。
up-fetch 适合用来做什么?
在 TypeScript 前端中构建带运行时校验的类型安全 API 客户端 为不稳定的第三方 API 调用添加重试和超时 在 Web 应用中展示文件上传或下载进度 消费流式响应,例如 AI 对话的逐段输出
up-fetch 怎么安装和运行?
从 npm 安装该包: npm i up-fetch 基于原生 fetch 创建 upfetch 实例 发起带可选架构校验的请求
在哪里获取 up-fetch?
源代码和安装说明在 GitHub 上:https://github.com/L-Blondy/up-fetch

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目