Was sind Prisma und Zod?

Prisma ist ein ORM-Tool (Object-Relational Mapping), das eine Schemadatei verwendet, um Ihre Datenbankstruktur mit Modellen, Feldern und Beziehungen zu definieren. Zod ist eine TypeScript-First-Schema-Validierungsbibliothek, mit der Sie Laufzeit-Typ-Validatoren definieren können. Die Konvertierung von Prisma-Schemas in Zod-Schemas ermöglicht es Ihnen, Ihre Datenbankmodelldefinitionen für die Eingabevalidierung wiederzuverwenden und so Konsistenz zwischen Ihrer Datenbankstruktur und Validierungslogik in Ihrer gesamten Anwendung sicherzustellen.

Tool-Beschreibung

Dieses Tool konvertiert automatisch Prisma-Schema-Definitionen in Zod-Validierungsschemas. Es analysiert Ihre Prisma-Modelle, Enums und Feldtypen und generiert dann entsprechende Zod-Schemas mit korrektem Typ-Mapping. Das Tool verarbeitet optionale Felder, Arrays und spezielle Prisma-Typen und erstellt TypeScript-fertige Validierungsschemas, die Ihre Datenbankstruktur widerspiegeln.

Funktionen

  • Automatisches Typ-Mapping: Konvertiert Prisma-Typen (String, Int, DateTime usw.) in entsprechende Zod-Validatoren
  • Enum-Unterstützung: Generiert Zod-Enum-Schemas aus Prisma-Enum-Definitionen
  • Array-Behandlung: Konvertiert Prisma-Listenfelder korrekt in Zod-Array-Validatoren
  • Optionale Felder: Behält optionale Felddefinitionen in den generierten Zod-Schemas bei
  • TypeScript-Typen: Generiert automatisch TypeScript-Typdefinitionen mit z.infer
  • Beziehungskommentare: Fügt Kommentare für Beziehungsfelder hinzu, die nicht direkt konvertiert werden können
  • Mehrere Modelle: Verarbeitet alle Modelle und Enums in einer einzigen Prisma-Schemadatei
  • Syntax-Hervorhebung: Code-Editor mit Prisma- und TypeScript-Syntax-Hervorhebung

Anwendungsfälle

  • API-Eingabevalidierung: Anfrage-Bodys gegen Ihre Datenbankmodelle validieren
  • Formularvalidierung: Zod-Schemas mit Formularbibliotheken wie React Hook Form verwenden
  • Typsicherheit: Sicherstellen, dass die Laufzeitvalidierung mit Ihrem Datenbankschema übereinstimmt
  • Code-Generierung: Validierungslogik automatisch aus Ihren Datenbankmodellen generieren
  • Konsistenz: Validierungsschemas mit der Datenbankstruktur synchronisiert halten
  • GraphQL-Resolver: Eingaben in GraphQL-Mutations-Resolvern validieren
  • Migrationsunterstützung: Validierungsschemas aktualisieren, wenn sich Datenbankmodelle ändern

Unterstützte Typ-Mappings

  • Stringz.string()
  • Int, Float, Decimalz.number()
  • Booleanz.boolean()
  • DateTimez.date()
  • Jsonz.record(z.any())
  • Bytesz.instanceof(Buffer)
  • BigIntz.bigint()
  • Benutzerdefinierte Typen/Enums → z.lazy(() => TypeSchema)
  • Listen → z.array()
  • Optionale Felder → .optional()