Mis on Prisma ja Zod?

Prisma on ORM (Object-Relational Mapping) tööriist, mis kasutab skeemi faili teie andmebaasi struktuuri määratlemiseks mudelite, väljade ja seoste abil. Zod on TypeScript‑esmane skeemi valideerimise teek, mis võimaldab teil määratleda käituse ajal tüübi valideerijad. Prisma skeemide konverteerimine Zod skeemideks võimaldab teil taaskasutada oma andmebaasi mudelite definitsioone sisendi valideerimiseks, tagades järjepidevuse teie andmebaasi struktuuri ja valideerimisloogika vahel kogu rakenduses.

Tööriista kirjeldus

See tööriist konverteerib automaatselt Prisma skeemi definitsioonid Zod valideerimis‑skeemideks. See analüüsib teie Prisma mudeleid, enum'e ja väljade tüüpe ning genereerib vastavad Zod skeemid õige tüüpide kaardistamisega. Tööriist käsitleb valikulisi välju, massiive ja erilise Prisma tüüpe, luues TypeScript‑valmis valideerimis‑skeemid, mis kajastavad teie andmebaasi struktuuri.

Funktsioonid

  • Automaatne tüüpide kaardistamine: Konverteerib Prisma tüübid (String, Int, DateTime jne) vastavatesse Zod valideerijatesse
  • Enumide tugi: Genereerib Zod enum skeemid Prisma enum definitsioonidest
  • Massiivide käsitlemine: Konverteerib Prisma loendväljad korrektselt Zod massiivi valideerijatesse
  • Valikulised väljad: Säilitab valikuliste väljade definitsioonid genereeritud Zod skeemides
  • TypeScript tüübid: Automaatne TypeScript tüübi definitsioonide genereerimine kasutades z.infer
  • Seoste kommentaarid: Lisab kommentaare seoseväljadele, mida ei saa otse konverteerida
  • Mitu mudelit: Töötleb kõiki mudeleid ja enum'e ühes Prisma skeemi failis
  • Süntaksi esiletõstmine: Koodiredaktor Prisma ja TypeScript süntaksi esiletõstmisega

Kasutusjuhtumid

  • API sisendi valideerimine: Valideerib päringu kehad teie andmebaasi mudelite vastu
  • Vormi valideerimine: Kasutage Zod skeeme vormiraamatukogudega nagu React Hook Form
  • Tüübisõltuvus: Tagab, et käituse ajal valideerimine vastab teie andmebaasi skeemile
  • Koodi genereerimine: Automaatne valideerimisloogika genereerimine teie andmebaasi mudelitest
  • Järjepidevus: Hoia valideerimis skeemid sünkroonis andmebaasi struktuuriga
  • GraphQL resolverid: Valideerib sisendeid GraphQL mutatsiooni resolverites
  • Migraatsiooni tugi: Uuendab valideerimis skeeme, kui andmebaasi mudelid muutuvad

Toetatud tüüpide kaardistused

  • Stringz.string()
  • Int, Float, Decimalz.number()
  • Booleanz.boolean()
  • DateTimez.date()
  • Jsonz.record(z.any())
  • Bytesz.instanceof(Buffer)
  • BigIntz.bigint()
  • Kohandatud tüübid/enumid → z.lazy(() => TypeSchema)
  • Loendid → z.array()
  • Valikulised väljad → .optional()