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

Obsługiwane mapowania typów

  • Stringz.string()
  • Int, Float, Decimalz.number()
  • Booleanz.boolean()
  • DateTimez.date()
  • Jsonz.record(z.any())
  • Bytesz.instanceof(Buffer)
  • BigIntz.bigint()
  • Typy niestandardowe/enumy → z.lazy(() => TypeSchema)
  • Listy → z.array()
  • Pola opcjonalne → .optional()