@dudousxd/nestjs-inertia-codegen-extension

中文文档
0.5.0发布于 2026/11/12MITTypeScriptES Module构建来源已验证近 30 天下载 2068

coryjs-codegen扩展为@dudousxd/nestjs-inertia——在生成的api.ts中添加了Inertia Covery()帮助器,并加上了opt-in share.ts和page-unlectedes.ts的排放.

中文使用文档
文档目录6 节
  1. 安装
  2. 设置
  3. 上面写的
  4. 怎样才合适
  5. 链接
  6. 许可证

@dudousxd/nestjs-inertia-codegen-extension (英语)

用于 @dudousxd/nestjs-codegen - 增加一个Inertia router 导入和类型安全 navigate() 帮助生成的已键入客户端 .

npm

输入的客户端代码源生活在独立的 @dudousxd/nestjs-codegen 软件包。 这个软件包是 只是Inertia扩展 登记 nestjsInertiaCodegen() 生成 api.ts 收益a navigate() 由 Inertia 支持的助手 router,因此您的突变和链接可以驱动 Inertia 访问,并使用完整的路由名称和参数自动完成.

安装

pnpm add -D @dudousxd/nestjs-inertia-codegen-extension

它是核心编码源的扩展,所以安装时要同时安装(React的Inertia适配器提供 router:

pnpm add -D @dudousxd/nestjs-codegen
pnpm add @inertiajs/react
同伴依赖关系范围
@dudousxd/nestjs-codegen>=0.1.0
@inertiajs/react>=1.0.0

设置

在代码源中注册扩展 extensions: [...] 数组——通过巢穴模块或 defineConfig 用于CLI/CI运行.

import { NestjsCodegenModule } from '@dudousxd/nestjs-codegen/nest';
import { nestjsInertiaCodegen } from '@dudousxd/nestjs-inertia-codegen-extension';

NestjsCodegenModule.forRoot({
  contracts: { glob: 'src/**/*.controller.ts' },
  pages: { glob: 'inertia/pages/**/*.tsx' },
  app: { moduleEntry: 'src/app.module.ts' },
  codegen: { outDir: '.nestjs-inertia' },
  extensions: [nestjsInertiaCodegen()],
});

相同的数组工作在 nestjs-codegen.config.ts (单位:千美元)defineConfig)——保留一出真相来源并导入两者.

上面写的

nestjsInertiaCodegen() 是一个 CodegenExtension 谁 apiHeader 钩子有助于生成 api.ts数字 :

  • 导入 Inertia 的 router —— 说 import { router } from '@inertiajs/react';
  • (单位:千美元) NavigateOptions 类型(method, (中文(简体) ), data, (中文(简体) ), preserveState, (中文(简体) ), preserveScroll, (中文(简体) ), replace(中文(简体) )
  • 类型安全 navigate() 解析其 URL 的命名路由并调用 router.visit()
import { navigate } from '~codegen/api';

// Route name autocompleted; params required when the route has :id
navigate('users.show', { params: { id: '42' } });
navigate('showDashboard.show');

// With Inertia visit options
navigate('users.list', { preserveState: true, replace: true });

Opt- in 文件 : shared 发射 shared.ts (单位:千美元)InertiaSharedProps, (中文(简体) ), scopes: { <scope>: { shared } } 各加一个 forFeature 范围是共享的道具InertiaScopeSharedProps, (中文(简体) ), ScopeSharedProps<S>),以及 pageExcludes: true 发射 page-excludes.ts。 。 。 .

没有延期, api.ts 是一个普通的打印客户端,并且 @inertiajs/react是因为 router 从未导入。 该扩展仅拥有 Inertia 表面 api.ts ——Inertia页面发现(pages.d.ts 编号 : components.json)和共享道具仍由核心处理 pages 编号 : app 相会.

怎样才合适

@dudousxd/nestjs-codegen 运行一个发现 ~ IR ~ 发射管线,并曝光 扩展合同在 @dudousxd/nestjs-codegen/extension整合不是配置旗,而是您注册的扩展旗 extensions: [...],每个形状的路由,释放额外的文件,或增强 api.ts本套件以单项执行合同 apiHeader 钩:

import type { CodegenExtension } from '@dudousxd/nestjs-codegen/extension';

export function nestjsInertiaCodegen(): CodegenExtension {
  return {
    name: 'nestjs-inertia',
    apiHeader() {
      return {
        imports: ["import { router } from '@inertiajs/react';"],
        statements: [/* NavigateOptions + navigate() */],
      };
    },
  };
}

它与其它伴生扩展组成——例如. tanstackQuery() (单位:千美元)@dudousxd/nestjs-codegen-tanstack用于 queryOptions编号 :mutationOptions 财务报告和审定财务报表 nestjsFilterCodegen() (单位:千美元)@dudousxd/nestjs-filter-codegen)用于打入的过滤器.

许可证

麻省理工学院

版本与发布记录

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

版本发布日期距今
0.5.0latest2026/11/122 天前
0.4.12026/11/086 天前
0.4.02026/09/301 个月前
0.3.02026/07/114 个月前
0.2.02026/06/184 个月前
0.1.02026/06/115 个月前

关于 @dudousxd/nestjs-inertia-codegen-extension 的常见问题

@dudousxd/nestjs-inertia-codegen-extension 是什么?

coryjs-codegen扩展为@dudousxd/nestjs-inertia——在生成的api.ts中添加了Inertia Covery()帮助器,并加上了opt-in share.ts和page-unlectedes.ts的排放.

如何安装 @dudousxd/nestjs-inertia-codegen-extension?

在项目目录运行 npm install @dudousxd/nestjs-inertia-codegen-extension,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@inertiajs/react(>=1.0.0)、@dudousxd/nestjs-codegen(>=0.2.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@dudousxd/nestjs-inertia-codegen-extension 支持 TypeScript 吗?

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

@dudousxd/nestjs-inertia-codegen-extension 支持 ESM 还是 CommonJS?

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

@dudousxd/nestjs-inertia-codegen-extension 需要什么版本的 Node.js?

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

@dudousxd/nestjs-inertia-codegen-extension 可以商用吗?

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

@dudousxd/nestjs-inertia-codegen-extension 的下载量有多少?

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

@dudousxd/nestjs-inertia-codegen-extension 还在维护吗?

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