Mikä on Prisma ja Zod?

Prisma on ORM‑työkalu (Object-Relational Mapping), joka käyttää skeematiedostoa tietokantarakenteen määrittämiseen malleilla, kentillä ja suhteilla. Zod on TypeScript‑ensimmäinen skeeman validointikirjasto, jonka avulla voit määritellä ajonaikaisia tyyppivalidaattoreita. Prisma‑skeemojen muuntaminen Zod‑skeemoiksi mahdollistaa tietokantamallien uudelleenkäytön syötteen validoinnissa, mikä varmistaa johdonmukaisuuden tietokantarakenteen ja validointilogiikan välillä koko sovelluksessasi.

Työkalun kuvaus

Tämä työkalu muuntaa automaattisesti Prisma‑skeeman määritelmät Zod‑validointiskeemoiksi. Se jäsentää Prisma‑mallisi, enumit ja kenttätyypit ja luo niistä vastaavat Zod‑skeemat oikeilla tyyppikäännöksillä. Työkalu käsittelee valinnaisia kenttiä, taulukoita ja erityisiä Prisma‑tyyppejä, luoden TypeScript‑valmiita validointiskeemoja, jotka heijastavat tietokantarakennettasi.

Ominaisuudet

  • Automaattinen tyyppikartoitus: Muuntaa Prisma‑tyypit (String, Int, DateTime, jne.) vastaaviksi Zod‑validoinneiksi
  • Enum‑tuki: Luo Zod‑enum‑skeemat Prisma‑enum‑määrittelyistä
  • Taulukko‑käsittely: Muuntaa Prisma‑listakentät oikein Zod‑taulukko‑validoinneiksi
  • Valinnaiset kentät: Säilyttää valinnaisten kenttien määrittelyn luoduissa Zod‑skeemoissa
  • TypeScript‑tyypit: Generoi automaattisesti TypeScript‑tyyppimäärittelyt käyttäen z.infer‑funktiota
  • Suhteiden kommentit: Lisää kommentteja suhdekentille, joita ei voida muuntaa suoraan
  • Useita malleja: Käsittelee kaikki mallit ja enumit yhdessä Prisma‑skeematiedostossa
  • Syntaksin korostus: Koodieditori Prisma‑ ja TypeScript‑syntaksin korostuksella

Käyttötapaukset

  • API‑syötteen validointi: Vahvista pyyntöjen rungot tietokantamalliesi perusteella
  • Lomakevalidointi: Käytä Zod‑skeemoja lomakekirjastoissa, kuten React Hook Form
  • Tyyppiturvallisuus: Varmista, että ajonaikainen validointi vastaa tietokantaskeemaa
  • Koodin generointi: Luo automaattisesti validointilogiikka tietokantamalleistasi
  • Johdonmukaisuus: Pidä validointiskeemat synkronoituna tietokantarakenteen kanssa
  • GraphQL‑resoluutiot: Validoi syötteet GraphQL‑mutaatioiden resoluutioissa
  • Migraatiotuki: Päivitä validointiskeemat, kun tietokantamallit muuttuvat

Tuetut tyyppikäännökset

  • Stringz.string()
  • Int, Float, Decimalz.number()
  • Booleanz.boolean()
  • DateTimez.date()
  • Jsonz.record(z.any())
  • Bytesz.instanceof(Buffer)
  • BigIntz.bigint()
  • Mukautetut tyypit/enumit → z.lazy(() => TypeSchema)
  • Listat → z.array()
  • Valinnaiset kentät → .optional()