← スキル一覧に戻る

zod
by HuynhSang2005
⭐ 0🍴 0📅 2026年1月25日
SKILL.md
name: zod description: Quy ước dùng Zod trong repo (schemas folder, Vietnamese messages, integration với react-hook-form và server actions).
Nguồn trong repo
- Schemas:
apps/web/src/schemas/*.ts- Ví dụ:
apps/web/src/schemas/blog.ts
- Ví dụ:
- Resolver:
@hookform/resolvers/zod(đã dùng trong admin forms).
Quy ước
- Định nghĩa schema ở
apps/web/src/schemas/<domain>.ts. - Xuất type bằng
z.infer<typeof schema>để không bị drift. - Message validation phải tiếng Việt (giữ thuật ngữ kỹ thuật English khi cần).
Pattern hay dùng (CẬP NHẬT ZOD V4)
- Optional + nullable (match DB):
z.string().max(160).optional().nullable()
- UUID:
z.string().uuid()
- Enum status:
z.enum(['draft', 'published', 'archived'], { error: 'Trạng thái không hợp lệ' })
- Zod v4: Dùng
error:thay vìmessage:cho custom errors:// Zod 4 pattern (KHUYẾN NGHỊ) z.string().min(5, { error: "Quá ngắn, tối thiểu 5 ký tự" }) // Zod 3 pattern (vẫn hoạt động nhưng không khuyến nghị) z.string().min(5, { message: "Quá ngắn" })
Với react-hook-form
resolver: zodResolver(schema)- Prefer
useForm<FormData, unknown, FormData>để types khớp.
Với server actions / route handlers
- Validate input bằng
schema.safeParse(data). - Không throw raw ZodError ra UI; map sang message tiếng Việt hoặc cấu trúc lỗi form.
Tránh
- Tránh
z.any()(repo strict TS). Nếu cần, dùngz.unknown()và refine. - Tránh duplicate rule giữa client & server; schema nên dùng chung.
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です