Add Zod for runtime validation of config and API data
This commit is contained in:
parent
ae7f01ea70
commit
36390e3224
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
- **框架**:Next.js(前后端不分离,WebUI 作为本地界面)
|
- **框架**:Next.js(前后端不分离,WebUI 作为本地界面)
|
||||||
- **UI 库**:Ant Design
|
- **UI 库**:Ant Design
|
||||||
|
- **校验库**:Zod(运行时校验 config 文件 + API 响应)
|
||||||
- **平台 API**:Modrinth API、CurseForge API
|
- **平台 API**:Modrinth API、CurseForge API
|
||||||
|
|
||||||
## 项目结构
|
## 项目结构
|
||||||
@ -39,7 +40,7 @@
|
|||||||
| `app/` | Next.js App Router 页面与布局 |
|
| `app/` | Next.js App Router 页面与布局 |
|
||||||
| `components/` | 可复用的 Ant Design 组件 |
|
| `components/` | 可复用的 Ant Design 组件 |
|
||||||
| `lib/` | 纯后端逻辑(读取配置、调用 API、模板解析等),可供前端直接引用 |
|
| `lib/` | 纯后端逻辑(读取配置、调用 API、模板解析等),可供前端直接引用 |
|
||||||
| `types/` | TypeScript 类型/接口定义 |
|
| `types/` | TypeScript 类型/接口定义,使用 Zod schema 统一校验并导出类型 |
|
||||||
|
|
||||||
### 代码质量
|
### 代码质量
|
||||||
|
|
||||||
@ -47,6 +48,20 @@
|
|||||||
- 尽可能减少技术债,写出可维护性高的代码
|
- 尽可能减少技术债,写出可维护性高的代码
|
||||||
- 组件拆分粒度合理,逻辑与 UI 分离
|
- 组件拆分粒度合理,逻辑与 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)
|
- [frontend.md](./frontend.md) — 前端页面与组件(WebUI)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user