From 36390e3224200dbca01b094b2cb7abc08a30fb52 Mon Sep 17 00:00:00 2001 From: CPTProgrammer <46586216+CPTProgrammer@users.noreply.github.com> Date: Mon, 6 Jul 2026 05:25:42 +0800 Subject: [PATCH] Add Zod for runtime validation of config and API data --- docs/index.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index ec3f4b8..1375ac3 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,6 +6,7 @@ - **框架**:Next.js(前后端不分离,WebUI 作为本地界面) - **UI 库**:Ant Design +- **校验库**:Zod(运行时校验 config 文件 + API 响应) - **平台 API**:Modrinth API、CurseForge API ## 项目结构 @@ -39,7 +40,7 @@ | `app/` | Next.js App Router 页面与布局 | | `components/` | 可复用的 Ant Design 组件 | | `lib/` | 纯后端逻辑(读取配置、调用 API、模板解析等),可供前端直接引用 | -| `types/` | TypeScript 类型/接口定义 | +| `types/` | TypeScript 类型/接口定义,使用 Zod schema 统一校验并导出类型 | ### 代码质量 @@ -47,6 +48,20 @@ - 尽可能减少技术债,写出可维护性高的代码 - 组件拆分粒度合理,逻辑与 UI 分离 +### 类型定义(`src/types/`) + +``` +src/types/ +├── config.ts # config.json + secrets.json 的 Zod schema 与类型 +├── modrinth/ # Modrinth API 请求/响应的 Zod schema 与类型 +│ └── ... +├── curseforge/ # CurseForge API 请求/响应的 Zod schema 与类型 +│ └── ... +└── index.ts # 统一导出 +``` + +所有外部数据(配置文件、API 请求体、API 响应体)统一用 Zod schema 校验,同时导出 TypeScript 类型。 + ## 文档目录 - [frontend.md](./frontend.md) — 前端页面与组件(WebUI)