@erest/gen
v3.2.2
Published
erest codegen CLI:从 Zod schema 生成 handler 骨架等(实验性,独立于 erest 主版本演进)
Readme
@erest/gen
erest codegen CLI:从 Zod schema 生成 handler 骨架等。
npm 包名为
@erest/gen,安装后通过erest-gen命令调用。
安装
pnpm add -D @erest/gen用法
handler 命令
从 Zod schema 文件生成 registerTyped handler 骨架。
约定:schema 文件中以 export const XxxSchema = z.object({...}) 形式导出的 schema 会被识别,每个生成一个 handler 骨架。
# 输出到 stdout
npx erest-gen handler --from ./schemas/user.ts --group user
# 输出到文件
npx erest-gen handler --from ./schemas/user.ts --group user --out ./handlers/user.ts示例输入 schemas/user.ts:
import { z } from "zod";
export const UserCreateSchema = z.object({
name: z.string(),
age: z.number().int(),
});
export const UserUpdateSchema = z.object({
name: z.string().optional(),
});生成输出:
import type ERest from "erest";
import { UserCreateSchema } from "./schemas/user.js";
import { UserUpdateSchema } from "./schemas/user.js";
export function registerUserHandlers(api: ERest["api"]) {
api
.post("/user-create")
.group("user")
.registerTyped(
{ body: UserCreateSchema },
(req, ctx) => {
// TODO: 实现 user-create 处理逻辑
return ctx.reply.json({ ok: true });
}
);
// ...
}后续计划
test命令:为已注册 API 生成测试样板docs命令:从 ERest 实例导出 markdown
