# @cratestack/api 中文文档

规范地址：https://npmcn.com/package/%40cratestack/api/

版本：0\.19\.3
npm 元数据更新时间：2026-11-09T15:58:06.946Z
中文译文更新时间：2026-11-11T00:47:30.967Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cratestack/api
原文对照：https://npmcn.com/package/%40cratestack/api/?lang=original
项目主页：https://cratestack.dev/
源码仓库：https://github.com/cratestack/cratestack

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：10.9 kB，30 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24
- 运行依赖：9 个
- 首次发布：2026-07-26T13:57:41.912Z
- 最新版本发布：2026-11-09T15:58:06.412Z
- 近 30 天下载量：2382（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：73（近 12 个月 73 个）

## 中文简介

相配伞覆盖分块@ cratestack/{ts- types,link-_运行时间_验证员_适应者.._}CrateStack所生成的TypeScript RPC客户端的家族——分批,记录等等.

## 安装

```sh
npm install @cratestack/api
```

也可以使用：`pnpm add @cratestack/api`、`yarn add @cratestack/api`、`bun add @cratestack/api`

## README

# @ cratestack/ api (英语)

将伞相配合于分块 `@cratestack/*` 用于 CrateStack 生成类型脚本的 npm 家族 RPC 客户端 (`transport rpc` 计划。 如果你开始新鲜, 更喜欢根据个人 直接下方的软件包——安装较小,没有未使用的对等依赖. `@cratestack/api` 已存在 如此存在 `import { createBatchLink } from "@cratestack/api"` 代码不变.

## 分裂

| 软件包 | 它会做什么 |
| --- | --- |
| [`@cratestack/ts-types`](https://github.com/cratestack/cratestack/tree/main/packages/cratestack-ts-types) | 共享 `RpcLink`/线框接口. 只有类型——没有运行时间代码. |
| [`@cratestack/link-batch`](https://github.com/cratestack/cratestack/tree/main/packages/cratestack-link-batch) | 自动批量调度器 `RpcLink`。 。 。 . |
| [`@cratestack/link-logger`](https://github.com/cratestack/cratestack/tree/main/packages/cratestack-link-logger) | 参考记录 `RpcLink`。 。 。 . |
| [`@cratestack/runtime-fetch`](https://github.com/cratestack/cratestack/tree/main/packages/cratestack-runtime-fetch) | `typeof fetch` 带有可选超时的运输. |
| [`@cratestack/runtime-axios`](https://github.com/cratestack/cratestack/tree/main/packages/cratestack-runtime-axios) | `typeof fetch` 以轴心为支撑的运输. |
| [`@cratestack/validator-zod`](https://github.com/cratestack/cratestack/tree/main/packages/cratestack-validator-zod) | 输入验证 `RpcLink`佐德计划. |
| [`@cratestack/validator-yup`](https://github.com/cratestack/cratestack/tree/main/packages/cratestack-validator-yup) | 输入验证 `RpcLink`,yup 计划. |
| [`@cratestack/adapter-tanstack-query`](https://github.com/cratestack/cratestack/tree/main/packages/cratestack-adapter-tanstack-query) | 通用 TanStack 查询选项构建器 . |
| [`@cratestack/adapter-rtk`](https://github.com/cratestack/cratestack/tree/main/packages/cratestack-adapter-rtk) | RTK 查询 `BaseQueryFn` 适配器. |

## 使用量

根导入自拆分前起没有变化 —— 它完全再出口 `ts-types` + 键 `link-batch` + 键 `link-logger`,因此从不将它导入到 zod/yup/axios/tanstack-query/rtk 隐含的同伴依赖性 :

```ts
import { createBatchLink, createLoggerLink } from "@cratestack/api";
import { CratestackRpcRuntime } from "./generated/runtime"; // your project's generated client

const runtime = new CratestackRpcRuntime("https://api.example.com", {
  links: [createLoggerLink(), createBatchLink()],
});
const client = new MyGeneratedClient(runtime);

// These three calls, if issued in the same tick, become ONE /rpc/batch request:
const [a, b, c] = await Promise.all([
  client.widgets.get(1),
  client.widgets.get(2),
  client.widgets.get(3),
]);
```

其它所有东西,因为拆分可以作为一个命名的子路径来使用——每一个都拉入它的 自己的同伴依赖,而不是每个软件包的:

```ts
import { createFetchRuntime } from "@cratestack/api/runtime-fetch";
import { createAxiosRuntime } from "@cratestack/api/runtime-axios";
import { createZodValidatorLink } from "@cratestack/api/validator-zod";
import { createYupValidatorLink } from "@cratestack/api/validator-yup";
import { rpcQueryOptions, rpcMutationOptions } from "@cratestack/api/adapter-tanstack-query";
import { createRpcBaseQuery } from "@cratestack/api/adapter-rtk";
```

请参看每个软件包本身的README(在上表中链接)来表示其完整的API和语义.

顺序事项:链接 `next` 重新运行其下方的所有内容( 真实的获取和已声明的链接) 在它之后,永远不要只是终端获取. `stream()` 呼叫完全绕过链条——一个链接 想要检查/重试一个响应 就需要克隆一个流体,它会击败流体.

## 常见问题

### @cratestack/api 是什么？

相配伞覆盖分块@ cratestack/\{ts- types,link-运行时间验证员适应者\.\.\}CrateStack所生成的TypeScript RPC客户端的家族——分批,记录等等\.

### 如何安装 @cratestack/api？

在项目目录运行 npm install @cratestack/api，或使用 pnpm add / yarn add / bun add。

### @cratestack/api 支持 TypeScript 吗？

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

### @cratestack/api 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @cratestack/api 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @cratestack/api 可以商用吗？

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

### @cratestack/api 的下载量有多少？

根据 npm 官方下载统计，@cratestack/api 在 2026/10/11 – 2026/11/09 这 30 天内被下载 2,382 次，日均约 79 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @cratestack/api 还在维护吗？

最新版本 0\.19\.3 发布于 2026/11/09（1 天前）；至今共发布 73 个版本，其中过去 12 个月发布了 73 个；首次发布于 2026/07/26。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

