@alt-stack/http-client-core

中文文档
1.8.2发布于 2026/10/20MITTypeScriptESM + CJS近 30 天下载 6027

类型安全 HTTP 客户端的核心类型、错误和逻辑

中文使用文档
文档目录4 节
  1. 安装
  2. 最小自定义执行器
  3. 每个请求标题
  4. 文档

@alt-stack/http-client-core

运算中性请求验证,响应打字,重试,记录,以及Altstack TypeScript HTTP客户端的错误.

大多数应用程序应安装 @alt-stack/http-client-fetch 或者说 @alt-stack/http-client-ky,它提供了执行器并重新导出此包.

安装

pnpm add @alt-stack/http-client-core zod

Zod 4是作为同伴的要求.

最小自定义执行器

import { ApiClient, type HttpExecutor } from "@alt-stack/http-client-core";
import { z } from "zod";

const Request = { "/health": { GET: {} } } as const;
const Response = {
  "/health": { GET: { "200": z.object({ ok: z.boolean() }) } },
} as const;

const executor: HttpExecutor<{ requestId: string }> = {
  async execute(request) {
    return {
      status: 200,
      statusText: "OK",
      data: { ok: true },
      raw: { requestId: request.url },
    };
  },
};

const client = new ApiClient({
  baseUrl: "https://api.example.test",
  Request,
  Response,
  executor,
});

const result = await client.get("/health", {});

执行者拥有I/O,超时执行,并解码. 核心验证请求/答复计划,并将记录的HTTP地位视为受歧视的结合.

每个请求标题

客户一级 headers 选项接受 Record<string, unknown> 或返回该记录的函数,同步或作为 Promise数字 :

const client = new ApiClient({
  baseUrl: "https://api.example.test",
  Request,
  Response,
  executor,
  headers: async () => ({ Authorization: `Bearer ${await getToken()}` }),
});

await client.get("/health", { headers: { "X-Request-Id": "request-123" } });

提供您的申请 getToken 函数。 提供者每次尝试运行一次,包括在请求验证后进行核心重试. 标题按此顺序合并: 默认 Content-Type: application/json 当 JSON 天体被发送时,客户头,然后请求头. 没有机构的请求没有默认 Content-Type。数值被字符串化; null 财务报告和审定财务报表 undefined 未删除早先的数值。 键保留其现有的对大小写敏感的合并行为.

投出或拒绝的提供者错误成为 UnexpectedApiClientError 带消息 Header provider failed。其原始消息和原因将被丢弃,以免出现错误和日志。 现行重试规则适用. 执行人的请求超时不涵盖供应商.

文档

版本与发布记录

@alt-stack/http-client-core 共发布 14 个版本,首次发布于 2025/12/01;过去 12 个月发布了 14 个版本。

版本发布日期距今
1.8.2latest2026/10/2018 天前
1.8.12026/10/2019 天前
1.8.02026/10/2019 天前
1.6.22026/08/202 个月前
1.6.12026/07/283 个月前
1.6.02026/07/223 个月前

关于 @alt-stack/http-client-core 的常见问题

@alt-stack/http-client-core 是什么?

类型安全 HTTP 客户端的核心类型、错误和逻辑

如何安装 @alt-stack/http-client-core?

在项目目录运行 npm install @alt-stack/http-client-core,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:zod(^4.1.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@alt-stack/http-client-core 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@alt-stack/http-client-core 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@alt-stack/http-client-core 可以商用吗?

@alt-stack/http-client-core 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@alt-stack/http-client-core 的下载量有多少?

根据 npm 官方下载统计,@alt-stack/http-client-core 在 2026/10/06 – 2026/11/04 这 30 天内被下载 6,027 次,日均约 201 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@alt-stack/http-client-core 还在维护吗?

最新版本 1.8.2 发布于 2026/10/20(18 天前);至今共发布 14 个版本,其中过去 12 个月发布了 14 个;首次发布于 2025/12/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。