Что такое Prisma и Zod?

Prisma — это инструмент ORM (объектно-реляционное отображение), который использует файл схемы для определения структуры базы данных с моделями, полями и связями. Zod — это библиотека валидации схем для TypeScript, которая позволяет определять валидаторы типов времени выполнения. Преобразование схем Prisma в схемы Zod позволяет повторно использовать определения моделей базы данных для валидации входных данных, обеспечивая согласованность между структурой базы данных и логикой валидации во всем приложении.

Описание инструмента

Этот инструмент автоматически преобразует определения схем Prisma в схемы валидации Zod. Он анализирует ваши модели, перечисления и типы полей Prisma, затем генерирует соответствующие схемы Zod с правильным отображением типов. Инструмент обрабатывает необязательные поля, массивы и специальные типы Prisma, создавая готовые для TypeScript схемы валидации, которые отражают структуру вашей базы данных.

Возможности

  • Автоматическое отображение типов: Преобразует типы Prisma (String, Int, DateTime и т.д.) в соответствующие валидаторы Zod
  • Поддержка перечислений: Генерирует схемы перечислений Zod из определений перечислений Prisma
  • Обработка массивов: Правильно преобразует поля-списки Prisma в валидаторы массивов Zod

Поддерживаемые отображения типов

  • Stringz.string()
  • Int, Float, Decimalz.number()
  • Booleanz.boolean()
  • DateTimez.date()
  • Jsonz.record(z.any())
  • Bytesz.instanceof(Buffer)
  • BigIntz.bigint()
  • Пользовательские типы/перечисления → z.lazy(() => TypeSchema)
  • Списки → z.array()
  • Необязательные поля → .optional()