tRPC脚手架工具Skill trpc-scaffolder

tRPC脚手架工具是一个自动化开发工具,用于快速生成类型安全的tRPC API端点。它提供脚本化创建路由器、过程和Zod验证模式,遵循DevPrep AI开发模式,确保代码质量和一致性。关键词:tRPC脚手架、TypeScript类型安全、Zod验证、API开发自动化、后端开发工具、代码生成、DevOps工具

后端开发 0 次安装 0 次浏览 更新于 3/2/2026

名称: tRPC脚手架工具 描述: 遵循DevPrep AI模式,脚手架式创建类型安全的tRPC路由器、过程和Zod模式 允许工具: [读取, 写入, 编辑, Bash, Glob, Grep]

tRPC脚手架工具

自动化创建类型安全的tRPC端点,支持Zod验证。

摘要: 运行脚本创建路由器/模式,在_app.ts中注册,使用脚本验证。


自动触发

关键词自动触发:

  • “新端点”, “创建端点”, “tRPC过程”
  • “新路由器”, “API”, “Zod模式”

快速标准

文件位置

lib/trpc/routers/
  _app.ts          # 在此注册所有路由器 ⚠️
  {名称}.ts        # 路由器文件

lib/trpc/schemas/
  {实体}.schema.ts  # Zod模式文件

路由器模式

export const 名称路由器 = router({
  执行操作: publicProcedure
    .input(输入模式)
    .output(输出模式)
    .mutation(async ({ input }) => { /* 逻辑 */ }),
});

模式模式

export const 输入模式 = z.object({
  字段: z.string().min(1),
});

export type 输入类型 = z.infer<typeof 输入模式>;  // ⚠️ 必需!

注册(必需!)

// 在_app.ts中
export const appRouter = router({
  ai: aiRouter,
  名称: 名称路由器,  // ⬅️ 在此添加新路由器
});

运行脚本

创建路由器

./.claude/skills/trpc-scaffolder/scripts/create-router.sh 用户
# 创建: lib/trpc/routers/用户.ts
# ⚠️ 记得在_app.ts中注册!

添加过程

./.claude/skills/trpc-scaffolder/scripts/add-procedure.sh ai 获取提示 query
# 输出要添加到路由器的代码片段

创建模式

./.claude/skills/trpc-scaffolder/scripts/create-schema.sh 提示
# 创建: lib/trpc/schemas/提示.schema.ts

验证设置

./.claude/skills/trpc-scaffolder/scripts/validate-trpc.sh
# 检查: 路由器注册、类型导出

快速参考

查询 vs 变更

类型 用途 方法
查询 获取数据(GET) .query(async ({ input }) => ...)
变更 修改数据(POST/PUT/DELETE) .mutation(async ({ input }) => ...)

常见Zod模式

类型 模式 示例
字符串 z.string().min(1).max(100) 名称验证
数字 z.number().int().min(0).max(10) 难度0-10
邮箱 z.string().email() 邮箱验证
可选 z.string().optional() 可选字段
数组 z.array(z.string()).min(1) 至少1项
枚举 z.enum(["a", "b", "c"]) 固定选项
对象 z.object({ field: z.string() }) 嵌套对象

命名约定

  • 路由器: {领域}路由器(例如:ai路由器, 用户路由器
  • 过程: camelCase(例如:生成问题, 获取提示
  • 模式: {操作}{实体}{输入\|输出}模式
  • 文件: {实体}.schema.ts, {领域}.ts

错误代码

代码 何时使用 示例
NOT_FOUND 资源不存在 用户未找到
BAD_REQUEST 无效输入 验证失败
UNAUTHORIZED 未认证 需要登录
FORBIDDEN 未授权 访问被拒绝
INTERNAL_SERVER_ERROR 服务器错误 API失败

常见修复

路由器未注册

// ❌ 忘记此步骤
// ✅ 添加到_app.ts:
import { 用户路由器 } from "./用户";
export const appRouter = router({ ai: ai路由器, 用户: 用户路由器 });

缺少类型导出

// ❌ 没有类型的模式
export const 用户模式 = z.object({ 名称: z.string() });

// ✅ 始终导出推断类型
export type 用户 = z.infer<typeof 用户模式>;

错误的过程类型

// ❌ 使用变更获取数据
获取数据: publicProcedure.mutation(...)

// ✅ 对GET操作使用查询
获取数据: publicProcedure.query(...)

模式验证错误

// ❌ 无验证
字段: z.string()

// ✅ 添加约束
字段: z.string().min(1, "字段必填")

何时加载额外文档

SKILL.md自包含以下内容:

  • 创建路由器和模式
  • 运行脚本
  • 修复常见错误

需要时加载额外文档:

需求 加载
分步教程 docs/quick-start-guide.md
高级Zod模式 docs/trpc-patterns.md (第1-80行)
错误处理策略 docs/trpc-patterns.md (第150-220行)
测试过程 docs/trpc-patterns.md (第220-270行)
上下文和中间件 docs/trpc-patterns.md (第80-150行)

代码示例:

  • ✅ 完美: examples/good-router.ts, examples/good-schema.ts

完整项目文档: Docs/api-design.md, Docs/api-transition/trpc-migration.md


版本: 1.0.0 | 更新日期: 2025年10月 模式: 遵循质量评审员结构(优化版)