# @dudousxd/nestjs-client 中文文档

规范地址：https://npmcn.com/package/%40dudousxd/nestjs-client/

版本：0\.10\.0
npm 元数据更新时间：2026-11-12T05:51:04.958Z
中文译文更新时间：2026-11-14T14:40:59.938Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40dudousxd/nestjs-client
原文对照：https://npmcn.com/package/%40dudousxd/nestjs-client/?lang=original
项目主页：https://davidecarvalho.github.io/aviary/docs/codegen
源码仓库：https://github.com/DavideCarvalho/nestjs-codegen

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

- 包体积（解压后）：224 kB，19 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=24
- 运行依赖：0 个
- peer 依赖：rxjs ^7\.0\.0，superjson ^2\.0\.0，@nestjs/common ^10\.0\.0 \|\| ^11\.0\.0 \|\| ^12\.0\.0
- 首次发布：2026-06-10T22:09:53.456Z
- 最新版本发布：2026-11-12T05:51:04.629Z
- 近 30 天下载量：2012（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 15 个）

## 中文简介

Coryjs-codegen输出的框架中性运行时间:有可选的超级json变压器的打出取取器. 没有依诺蒂亚依赖.

## 安装

```sh
npm install @dudousxd/nestjs-client
```

也可以使用：`pnpm add @dudousxd/nestjs-client`、`yarn add @dudousxd/nestjs-client`、`bun add @dudousxd/nestjs-client`

## README

# @dudousxd/nestjs-客户端

框架中立运行时间 [`@dudousxd/nestjs-codegen`](https://github.com/DavideCarvalho/nestjs-codegen) 输出:装有可插件的打字取取器和可选的超级json变压器. 没有依诺蒂亚依赖.

![npm](https://img.shields.io/npm/v/@dudousxd/nestjs-client)

代码由 `@dudousxd/nestjs-codegen` (单位:千美元)`api.ts`进口 `Fetcher` **类型** 从此软件包运行到 a `Fetcher` 实例 `createApi(fetcher)`。此软件包提供取取器:它拥有 URL 大楼、信头、出错映射(`ApiHttpError`),以及有效载荷变压器,而实际的网络调用则通过可插接的运输(原载: `fetch` (默认情况下).

因为生成的客户端在运行时调用它,这是一个 **普通依赖** - 不是一个 `devDependency`编辑 `Fetcher` 界面是完全通用的 (`get<T>(path, opts?): Promise<T>`),而打入的表面是让生成的客户端和查询选项推断响应类型。 失踪或 `any`\- 类型取取器无声地将整个生成的客户端降为 `any`。 。 。 .

## 安装

```sh
pnpm add @dudousxd/nestjs-client
```

## 使用量

创建取取器,然后交给 `createApi` 由您的生成导出 `api.ts`数字 :

```ts
import { createFetcher } from '@dudousxd/nestjs-client';
import { createApi } from './api'; // generated by @dudousxd/nestjs-codegen

const fetcher = createFetcher({
  baseUrl: '/api',
  headers: () => ({ authorization: `Bearer ${getToken()}` }),
});

const api = createApi(fetcher);
```

默认运输是本地的 `fetch`编辑 `headers` 函数被调用为每个请求一次,所以动态认证符号总是保持当前状态.

### 带上你自己的轴箱

过 `axiosTransport(http)` 用自己的拦截器、认证器和 `withCredentials`数字 :

```ts
import axios from 'axios';
import { createFetcher, axiosTransport } from '@dudousxd/nestjs-client';

const http = axios.create({ baseURL: '/api', withCredentials: true });

const fetcher = createFetcher({ transport: axiosTransport(http) });
```

> 在轴实例上设置基准 URL( 不) `createFetcher`是因为 `baseUrl`所以它不是前缀两次.

### 全球信头

`setGlobalHeaders` 登记适用于所有获取器的每个请求的函数——方便用于全应用程序认证或跟踪信头:

```ts
import { setGlobalHeaders } from '@dudousxd/nestjs-client';

setGlobalHeaders(() => ({ authorization: `Bearer ${getToken()}` }));
```

### 超级json和变压器管道

A 类 **变压器** 是一个 `{ stringify, parse }` 双人 将超级json传递给富豪型(`Date`, (中文(简体) ), `Map`, (中文(简体) ), `Set`, (中文(简体) ), `BigInt`)——服务器必须使用同一种变压器:

```ts
import superjson from 'superjson';
import { createFetcher } from '@dudousxd/nestjs-client';

const fetcher = createFetcher({ transformer: superjson });
```

通过数组来编程管道 `composeTransformers`: 基准值 qqstring 序列器, 然后字符串 qqstring 包装器( 压缩、 加密) 应用到左到右 `stringify` 右出左出击 `parse`数字 :

```ts
import superjson from 'superjson';
import { createFetcher } from '@dudousxd/nestjs-client';
import { compress } from './my-compress'; // { stringify, parse } over strings

const fetcher = createFetcher({ transformer: [superjson, compress] });
```

### 错误

非-2xx 答复以 `ApiHttpError` 携带 `status`, (中文(简体) ), `statusText`并解析 `body`附加时 `isUnauthorized` 编号 : `isForbidden` 编号 : `isNotFound` 编号 : `isClient` 编号 : `isServer` 帮助者 :

```ts
import { ApiHttpError } from '@dudousxd/nestjs-client';

try {
  await api.users.get({ params: { id } });
} catch (err) {
  if (err instanceof ApiHttpError && err.isNotFound) {
    // handle 404
  }
}
```

## 获取者合同

生成的客户端依赖于此输入的表面—— 保存 `T` 通用响应类型 :

```ts
interface Fetcher {
  get<T>(path: string, opts?: RequestOpts): Promise<T>;
  post<T>(path: string, opts?: RequestOpts): Promise<T>;
  put<T>(path: string, opts?: RequestOpts): Promise<T>;
  patch<T>(path: string, opts?: RequestOpts): Promise<T>;
  delete<T>(path: string, opts?: RequestOpts): Promise<T>;
}
```

`createFetcher` 返回此精确形状的值。 符合下列条件的任何对象: `Fetcher` 界面工作- 这就是为什么框架与自己的客户端可以提供兼容性 `createFetcher` (见下文).

## 如何与 @dudouxd/nestjs-codegen 相匹配

`@dudousxd/nestjs-codegen` 是编码元的一半, 它运行于 dev/ CI 中, 并释放出一个完全键入 `api.ts` 从你的NestJS控制器。 生成的文件导入到 `Fetcher` **类型** 从这个软件包 并曝光一个 `createApi(fetcher)` 工厂.

`@dudousxd/nestjs-client` 是运行时间的一半——生成的客户端实际执行的依赖。 安装在应用程序中,用 `createFetcher`,并传递给 `createApi`。 。 。 .

运送客户的框架(例如: `@dudousxd/nestjs-inertia-client`) 暴露一个相容性 `createFetcher` 生成一个 `Fetcher`\- 形状对象,所以同一生成的客户端在它们上方运行不变.

## 文档

-   [获取器和运输](https://github.com/DavideCarvalho/nestjs-codegen) —— 说 `createFetcher`海关运输机和序列器.
-   [仓库](https://github.com/DavideCarvalho/nestjs-codegen)

## 许可证

麻省理工学院

## 常见问题

### @dudousxd/nestjs-client 是什么？

Coryjs-codegen输出的框架中性运行时间:有可选的超级json变压器的打出取取器\. 没有依诺蒂亚依赖\.

### 如何安装 @dudousxd/nestjs-client？

在项目目录运行 npm install @dudousxd/nestjs-client，或使用 pnpm add / yarn add / bun add。

### @dudousxd/nestjs-client 支持 TypeScript 吗？

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

### @dudousxd/nestjs-client 支持 ESM 还是 CommonJS？

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

### @dudousxd/nestjs-client 需要什么版本的 Node\.js？

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

### @dudousxd/nestjs-client 可以商用吗？

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

### @dudousxd/nestjs-client 的下载量有多少？

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

### @dudousxd/nestjs-client 还在维护吗？

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

