محول Prisma إلى Zod
حوّل نماذج مخطط Prisma إلى مخططات التحقق Zod مع استنتاج الأنواع في TypeScript
الإدخال
الإخراج
ملف القراءة
ما هو Prisma و Zod؟
Prisma هو أداة ORM (Object-Relational Mapping) تستخدم ملف مخطط لتحديد بنية قاعدة البيانات الخاصة بك مع النماذج والحقول والعلاقات. Zod هي مكتبة تحقق من المخططات مبنية على TypeScript تسمح لك بتعريف محققات نوع في وقت التشغيل. تحويل مخططات Prisma إلى مخططات Zod يتيح لك إعادة استخدام تعريفات نماذج قاعدة البيانات للتحقق من الإدخال، مما يضمن التناسق بين بنية قاعدة البيانات ومنطق التحقق عبر تطبيقك.
وصف الأداة
هذه الأداة تقوم تلقائيًا بتحويل تعريفات مخطط Prisma إلى مخططات تحقق Zod. تقوم بتحليل نماذج Prisma، والتعدادات، وأنواع الحقول، ثم تولد مخططات Zod المقابلة مع تعيينات النوع المناسبة. تتعامل الأداة مع الحقول الاختيارية، والمصفوفات، وأنواع Prisma الخاصة، مُنشئةً مخططات تحقق جاهزة لـ TypeScript تعكس بنية قاعدة البيانات الخاصة بك.
الميزات
- تعيين النوع تلقائيًا: يحول أنواع Prisma (String, Int, DateTime، إلخ) إلى محققين Zod المقابلين
- دعم التعداد: يولد مخططات تعداد Zod من تعريفات تعداد Prisma
- معالجة المصفوفات: يحول حقول القوائم في Prisma بشكل صحيح إلى محققين مصفوفة Zod
- الحقول الاختيارية: يحافظ على تعريفات الحقول الاختيارية في مخططات Zod المولدة
- أنواع TypeScript: يولد تلقائيًا تعريفات نوع TypeScript باستخدام
z.infer - تعليقات العلاقات: يضيف تعليقات للحقول العلائقية التي لا يمكن تحويلها مباشرة
- نماذج متعددة: يعالج جميع النماذج والتعدادات في ملف مخطط Prisma واحد
- تمييز الصياغة: محرر شفرة مع تمييز الصياغة لـ Prisma و TypeScript
حالات الاستخدام
- التحقق من مدخلات API: تحقق من صحة أجسام الطلب مقابل نماذج قاعدة البيانات الخاصة بك
- التحقق من النماذج: استخدم مخططات Zod مع مكتبات النماذج مثل React Hook Form
- سلامة النوع: تأكد من أن التحقق في وقت التشغيل يتطابق مع مخطط قاعدة البيانات الخاص بك
- توليد الشفرة: يولد تلقائيًا منطق التحقق من نماذج قاعدة البيانات الخاصة بك
- التناسق: حافظ على مزامنة مخططات التحقق مع بنية قاعدة البيانات
- محللات GraphQL: تحقق من صحة المدخلات في محللات عمليات التحويل في GraphQL
- دعم الترحيل: حدّث مخططات التحقق عندما تتغير نماذج قاعدة البيانات
تعيينات الأنواع المدعومة
String→z.string()Int,Float,Decimal→z.number()Boolean→z.boolean()DateTime→z.date()Json→z.record(z.any())Bytes→z.instanceof(Buffer)BigInt→z.bigint()- Custom types/enums →
z.lazy(() => TypeSchema) - Lists →
z.array() - Optional fields →
.optional()