Cosa sono Prisma e Zod?

Prisma è uno strumento ORM (Object-Relational Mapping) che utilizza un file di schema per definire la struttura del database con modelli, campi e relazioni. Zod è una libreria di validazione degli schemi TypeScript-first che consente di definire validatori di tipi a runtime. La conversione degli schemi Prisma in schemi Zod consente di riutilizzare le definizioni dei modelli del database per la validazione degli input, garantendo coerenza tra la struttura del database e la logica di validazione in tutta l'applicazione.

Descrizione dello strumento

Questo strumento converte automaticamente le definizioni degli schemi Prisma in schemi di validazione Zod. Analizza i modelli, le enumerazioni e i tipi di campo Prisma, quindi genera gli schemi Zod corrispondenti con mappature dei tipi appropriate. Lo strumento gestisce campi opzionali, array e tipi speciali Prisma, creando schemi di validazione pronti per TypeScript che rispecchiano la struttura del database.

Funzionalità

  • Mappatura automatica dei tipi: Converte i tipi Prisma (String, Int, DateTime, ecc.) nei validatori Zod corrispondenti
  • Supporto enumerazioni: Genera schemi di enumerazione Zod dalle definizioni di enumerazione Prisma
  • Gestione array: Converte correttamente i campi lista Prisma in validatori array Zod

Mappature dei tipi supportate

  • Stringz.string()
  • Int, Float, Decimalz.number()
  • Booleanz.boolean()
  • DateTimez.date()
  • Jsonz.record(z.any())
  • Bytesz.instanceof(Buffer)
  • BigIntz.bigint()
  • Tipi personalizzati/enumerazioni → z.lazy(() => TypeSchema)
  • Liste → z.array()
  • Campi opzionali → .optional()