@zhiaiwan/requestkit
v1.0.0
Published
基于 axios 二次封装的现代化、类型安全的 HTTP 客户端,开箱即用地提供请求队列追踪、分组取消、自动重试、Token 刷新、错误分类、并发限制、响应缓存和 Debug 日志
Maintainers
Readme
@zhiaiwan/requestkit
基于 axios 二次封装的现代化、类型安全的 HTTP 客户端。单一入口、开箱即用;规划能力含请求队列追踪、分组取消、自动重试、Token 刷新、错误分类、并发限制、响应缓存和 Debug 日志。支持 UMD / CommonJS / ESM 与完整 TypeScript 类型。
安装
npm install @zhiaiwan/requestkit
# 或
pnpm add @zhiaiwan/requestkit使用
默认实例(推荐,类比 import axios)
import requestKit from '@zhiaiwan/requestkit';
requestKit.intercept((ctx, next) => {
ctx.meta.at = Date.now();
next();
});
const ctx = requestKit.run('greet', { name: 'world' });多实例(类比 axios.create)
import { RequestKit, createRequestKit } from '@zhiaiwan/requestkit';
const a = new RequestKit({ name: 'a', logLevel: 'info' });
const b = createRequestKit({ name: 'b' });
// a、b 相互隔离,各自维护拦截器链与扩展Node.js(CommonJS)
const requestKit = require('@zhiaiwan/requestkit').default;
const { createRequestKit } = require('@zhiaiwan/requestkit');浏览器(UMD 全局变量)
<script src="https://unpkg.com/@zhiaiwan/requestkit/dist/umd/requestKit.min.js"></script>
<script>
const app = RequestKit.createRequestKit();
console.log(RequestKit.version);
</script>API 一览
| 导出 | 说明 |
|------|------|
| default | 开箱即用的默认实例 |
| RequestKit | 门面主类 |
| createRequestKit(options?) | 创建独立实例的工厂 |
| version | 库版本号 |
| RequestKitOptions / RequestKitContext / Interceptor / RequestKitExtension / RequestKitInstance / LogLevel | 公开类型 |
RequestKit 实例方法:init() / destroy() / use() / eject() / intercept() / run()。
发布产物
| 目录 | 格式 | 说明 |
|------|------|------|
| dist/cjs/ | CommonJS | require |
| dist/esm/ | ESM | import |
| dist/types/ | TypeScript 声明 | 与 package.json 的 exports 映射 |
| dist/umd/ | UMD 单文件 | .js / .min.js,全局名 RequestKit |
开发脚本
pnpm test # Jest 单元测试
pnpm test:coverage # 覆盖率(阈值 80%)
pnpm bench # 性能基准测试
pnpm lint # ESLint编译不开源:本包(core)自身没有任何 build 脚本,编译工具链集中在私有 CLI 包(
packages/cli/build/)。core 的构建只能在本 Monorepo 内经pnpm build:core完成。详见仓库根 README。
目录约定
- 单一入口门面:对外只从
src/index.ts导出;默认导出开箱即用实例,具名导出类 / 工厂 / 类型 - 内部高内聚:
src/core(主类、扩展管理)与src/modules(日志、拦截器链)允许相互引用 - 内部共享:
src/_internal/存放库内 helper,不对外 export - 版本号:
src/version.ts由构建流程自动生成,勿手改
