wormaworma

插件系统

插件系统的 8 个生命周期 hook 和进度报告

worma 的插件系统允许你在代码生成的各个生命周期阶段介入,修改生成结果。

生命周期

钩子执行时序

config() → beforeOpenapiParse() → 解析 OpenAPI → openapiParsed()
→ getTemplate()                ← 插件返回模板路径
→ beforeCodeGenerate(data)     ← 插件注入配置数据到 templateData
→ onHandlebarsCreated(hbs)     ← 可注册自定义 helpers/partials
→ 流式渲染 + 写盘:
    loop 每个文件:
       beforeFileWrite(filePath, content)  ← 插件修改单文件内容
       writeFile(filePath)
→ codeGenerated(filePaths, renderTemplate)     ← 通知 / 生成额外文件(aiDoc 等)

钩子概览

钩子时机可修改config 状态
config配置解析后config可修改
beforeOpenapiParseOpenAPI 解析前已冻结
openapiParsedOpenAPI 解析后document已冻结
getTemplate模板加载前模板路径已冻结
beforeCodeGenerate代码生成前TemplateData已冻结
onHandlebarsCreatedHandlebars 实例创建后hbs 实例 / partials / helpers已冻结
beforeFileWrite每个文件写盘前单个文件内容已冻结
codeGenerated全部文件写盘后filePaths / 通过 renderTemplate 渲染额外模板已冻结

进度报告

如果插件内存在耗时操作,可通过 reportProgress 报告插件内的处理进度。每个插件实例绑定独立的 reportProgress,以插件 name 作为 source 标识:

type ReportProgress = (progress: number, message?: string) => void;

On this page