@dudousxd/nestjs-client

中文文档
0.10.0发布于 2026/11/12MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 2012

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

中文使用文档
文档目录10 节
  1. 安装
  2. 使用量
  3. 带上你自己的轴箱
  4. 全球信头
  5. 超级json和变压器管道
  6. 错误
  7. 获取者合同
  8. 如何与 @dudouxd/nestjs-codegen 相匹配
  9. 文档
  10. 许可证

@dudousxd/nestjs-客户端

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

npm

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

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

安装

pnpm add @dudousxd/nestjs-client

使用量

创建取取器,然后交给 createApi 由您的生成导出 api.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数字 :

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 登记适用于所有获取器的每个请求的函数——方便用于全应用程序认证或跟踪信头:

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

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

超级json和变压器管道

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

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

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

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

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 帮助者 :

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

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

获取者合同

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

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- 形状对象,所以同一生成的客户端在它们上方运行不变.

文档

许可证

麻省理工学院

版本与发布记录

@dudousxd/nestjs-client 共发布 15 个版本,首次发布于 2026/06/11;过去 12 个月发布了 15 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.10.0latest2026/11/122 天前
0.9.22026/09/301 个月前
0.9.12026/09/301 个月前
0.9.02026/09/291 个月前
0.8.12026/08/292 个月前
0.8.02026/07/223 个月前

关于 @dudousxd/nestjs-client 的常见问题

@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 和提交记录判断。