mcp-vue-codegen 1.3.1 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -176,10 +176,86 @@ MCP Server,根据数据库表字段 JSON 文档自动生成 **Vue3 前端** +
|
|
|
176
176
|
| `required` | 前端校验规则 |
|
|
177
177
|
| `isPrimaryKey` / `isForeignKey` / `isSystemField` | 后端实体类字段类型推导和过滤 |
|
|
178
178
|
|
|
179
|
+
## 项目结构
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
mcp-vue-codegen/
|
|
183
|
+
├── src/
|
|
184
|
+
│ ├── index.ts # MCP Server 入口:注册 3 个 Tool,启动 stdio 通信
|
|
185
|
+
│ ├── types/
|
|
186
|
+
│ │ └── schema.ts # TypeScript 类型定义(TableSchema 完整接口)
|
|
187
|
+
│ ├── tools/
|
|
188
|
+
│ │ ├── validate.ts # Zod Schema 定义 + JSON 校验/解析函数
|
|
189
|
+
│ │ └── generate.ts # 前端生成协调器(调用 4 个 generator → 写入文件)
|
|
190
|
+
│ ├── generators/
|
|
191
|
+
│ │ ├── options.ts # options.ts 生成器
|
|
192
|
+
│ │ ├── api.ts # api/*.ts 生成器
|
|
193
|
+
│ │ ├── index-vue.ts # index.vue 生成器
|
|
194
|
+
│ │ ├── form-vue.ts # form.vue 生成器
|
|
195
|
+
│ │ └── backend.ts # 后端生成协调器(调用 4 个 backend 模板 → 写入文件)
|
|
196
|
+
│ └── templates/
|
|
197
|
+
│ ├── options.tpl.ts # 模板:options.ts 代码字符串生成
|
|
198
|
+
│ ├── api.tpl.ts # 模板:api/*.ts 代码字符串生成
|
|
199
|
+
│ ├── index-vue.tpl.ts # 模板:index.vue 代码字符串生成
|
|
200
|
+
│ ├── form-vue.tpl.ts # 模板:form.vue 代码字符串生成
|
|
201
|
+
│ └── backend/
|
|
202
|
+
│ ├── entity.tpl.ts # 模板:Entity Java 代码生成
|
|
203
|
+
│ ├── mapper.tpl.ts # 模板:Mapper 接口 + XML 代码生成
|
|
204
|
+
│ ├── service.tpl.ts # 模板:Service 接口 + ServiceImpl 代码生成
|
|
205
|
+
│ └── controller.tpl.ts # 模板:Controller 代码生成
|
|
206
|
+
├── example/
|
|
207
|
+
│ └── table-schema.json # 示例 JSON 文档
|
|
208
|
+
├── package.json
|
|
209
|
+
├── tsconfig.json
|
|
210
|
+
├── LICENSE
|
|
211
|
+
└── README.md
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### 模块说明
|
|
215
|
+
|
|
216
|
+
| 模块 | 职责 |
|
|
217
|
+
|------|------|
|
|
218
|
+
| `index.ts` | MCP Server 入口,注册 3 个 Tool(validate_schema / generate_vue_crud / generate_java_crud),通过 stdio 与 IDE 通信 |
|
|
219
|
+
| `types/schema.ts` | 定义 `TableSchema` 完整 TypeScript 接口,包括 Module、Master、Detail、FieldDef、RefConfig 等 |
|
|
220
|
+
| `tools/validate.ts` | 使用 Zod 定义 JSON 文档校验规则,提供 `validateSchema()`(校验)和 `parseSchema()`(解析)两个函数 |
|
|
221
|
+
| `tools/generate.ts` | 前端生成协调器,依次调用 4 个 generator 生成 options.ts / api / index.vue / form.vue 并写入磁盘 |
|
|
222
|
+
| `generators/backend.ts` | 后端生成协调器,调用 entity / mapper / service / controller 模板生成 11 个 Java 文件并写入磁盘 |
|
|
223
|
+
| `templates/*.tpl.ts` | 纯函数模板,接收解析后的 schema 对象,返回生成的代码字符串。无副作用,不操作文件系统 |
|
|
224
|
+
|
|
225
|
+
### 运行流程
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
IDE 启动 → npx mcp-vue-codegen → Node.js 进程启动 → stdio 通信等待调用
|
|
229
|
+
│
|
|
230
|
+
注册 3 个 Tool
|
|
231
|
+
│
|
|
232
|
+
┌──────────────────────────┼──────────────────────────┐
|
|
233
|
+
▼ ▼ ▼
|
|
234
|
+
validate_schema generate_vue_crud generate_java_crud
|
|
235
|
+
│ │ │
|
|
236
|
+
▼ ▼ ▼
|
|
237
|
+
resolveSchemaJson() resolveSchemaJson() resolveSchemaJson()
|
|
238
|
+
(文件路径→读文件) (文件路径→读文件) (文件路径→读文件)
|
|
239
|
+
│ │ │
|
|
240
|
+
▼ ▼ ▼
|
|
241
|
+
Zod 校验 JSON parseSchema() 解析 parseSchema() 解析
|
|
242
|
+
│ │ │
|
|
243
|
+
▼ ▼ ▼
|
|
244
|
+
返回校验结果 4 个前端 generator 4 个后端 template
|
|
245
|
+
生成代码字符串 生成代码字符串
|
|
246
|
+
│ │
|
|
247
|
+
▼ ▼
|
|
248
|
+
fs.writeFileSync() fs.writeFileSync()
|
|
249
|
+
写入 4 个前端文件 写入 11 个 Java 文件
|
|
250
|
+
│ │
|
|
251
|
+
▼ ▼
|
|
252
|
+
返回文件列表+行数 返回文件列表+行数
|
|
253
|
+
```
|
|
254
|
+
|
|
179
255
|
## 环境要求
|
|
180
256
|
|
|
181
257
|
- Node.js >= 18
|
|
182
258
|
|
|
183
259
|
## License
|
|
184
260
|
|
|
185
|
-
MIT
|
|
261
|
+
MIT (c) anshu
|