etchcli
v0.1.1
Published
模板驱动的代码生成 CLI,面向 AI Coder:零交互、JSON 输出、模板自描述
Maintainers
Readme
Etch CLI
模板驱动的代码生成 CLI(npx 分发)。
技术栈
TypeScript · citty(命令解析)· tsup(打包)· EJS(模板渲染)· zod(输入校验)。
开发
cd npxend
pnpm install
pnpm run dev -- --help # tsx 直接跑源码
pnpm run build # 产物到 dist/(ESM,带 shebang)
node dist/index.mjs --help # 跑构建产物试运行 gencode
当前 gencode 还是占位命令,用于验证 CLI 入口、子命令分发和参数解析是否正常。
cd npxend
pnpm run dev gencode --project .. --entity .etch/entities/demo/FlatExemplar.entity.yaml --template debug.demo预期输出为一行 JSON,其中 status 为 ok,并生成 .etch/templates/debug/demo.txt。
试运行 check
cd npxend
pnpm run dev check --project ..预期输出为一行 JSON,其中 status 为 ok。如果缺少 .etch/_settings.yaml 或 .etch/entities/,命令会分别输出错误并返回非 0 退出码。
模板上下文
gencode 渲染 EJS 模板时提供以下上下文:
| 变量 | 含义 |
| --- | --- |
| global | .etch/_settings.yaml 内容 |
| module | 当前模型所属目录的 _settings.yaml 内容 |
| entity | 当前实体模型,仅传入 --entity 时存在 |
| enumModel | 当前枚举模型,仅传入 --enum 时存在 |
| dict | 当前字典模型,仅传入 --dict 时存在 |
| helper | 辅助函数集合,如 helper.camel(...) / helper.mapSqlType(...) |
质量
pnpm run lint # oxlint --fix(correctness 规则)
pnpm run typecheck # tsc --noEmit发布
package.json 已配 bin.etchcli 与 files。pnpm run build 后 npm publish,即可 npx etchcli@latest ...。
