Konwerter Prisma do Zod
Konwertuj modele schematu Prisma na schematy walidacji Zod z wnioskowaniem typów TypeScript
Wejście
Wyjście
Instrukcja
Co to jest Prisma i Zod?
Prisma jest narzędziem ORM (Object-Relational Mapping), które używa pliku schematu do definiowania struktury bazy danych za pomocą modeli, pól i relacji. Zod jest biblioteką walidacji schematów typu TypeScript‑first, umożliwiającą definiowanie walidatorów typów w czasie wykonywania. Konwersja schematów Prisma na schematy Zod pozwala ponownie wykorzystać definicje modeli bazy danych do walidacji danych wejściowych, zapewniając spójność między strukturą bazy a logiką walidacji w całej aplikacji.
Opis narzędzia
To narzędzie automatycznie konwertuje definicje schematów Prisma na schematy walidacji Zod. Parsuje modele, enumy i typy pól Prisma, a następnie generuje odpowiadające schematy Zod z właściwymi mapowaniami typów. Narzędzie obsługuje pola opcjonalne, tablice oraz specjalne typy Prisma, tworząc gotowe do użycia w TypeScript schematy walidacji, które odzwierciedlają strukturę bazy danych.
Funkcje
- Automatyczne mapowanie typów: Konwertuje typy Prisma (String, Int, DateTime, itp.) na odpowiednie walidatory Zod
- Obsługa enumów: Generuje schematy enum Zod na podstawie definicji enumów Prisma
- Obsługa tablic: Poprawnie konwertuje pola list w Prisma na walidatory tablic Zod
- Pola opcjonalne: Zachowuje definicje pól opcjonalnych w generowanych schematach Zod
- Typy TypeScript: Automatycznie generuje definicje typów TypeScript przy użyciu
z.infer - Komentarze relacji: Dodaje komentarze do pól relacji, które nie mogą być bezpośrednio skonwertowane
- Wiele modeli: Przetwarza wszystkie modele i enumy w jednym pliku schematu Prisma
- Podświetlanie składni: Edytor kodu z podświetlaniem składni Prisma i TypeScript
Przypadki użycia
- Walidacja wejść API: Waliduj ciała żądań względem modeli bazy danych
- Walidacja formularzy: Używaj schematów Zod z bibliotekami formularzy, takimi jak React Hook Form
- Bezpieczeństwo typów: Zapewnij, że walidacja w czasie wykonywania odpowiada schematowi bazy danych
- Generowanie kodu: Automatycznie generuj logikę walidacji na podstawie modeli bazy danych
- Spójność: Utrzymuj schematy walidacji zsynchronizowane ze strukturą bazy danych
- Resolverzy GraphQL: Waliduj dane wejściowe w resolverach mutacji GraphQL
- Wsparcie migracji: Aktualizuj schematy walidacji po zmianie modeli bazy danych
Obsługiwane mapowania typów
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()- Typy niestandardowe/enumy →
z.lazy(() => TypeSchema) - Listy →
z.array() - Pola opcjonalne →
.optional()