Конвертер Prisma в Zod
Преобразуйте модели схемы Prisma в схемы валидации Zod с выводом типов TypeScript
Ввод
Вывод
Документация
Что такое Prisma и Zod?
Prisma — это инструмент ORM (объектно-реляционное отображение), который использует файл схемы для определения структуры базы данных с моделями, полями и связями. Zod — это библиотека валидации схем для TypeScript, которая позволяет определять валидаторы типов времени выполнения. Преобразование схем Prisma в схемы Zod позволяет повторно использовать определения моделей базы данных для валидации входных данных, обеспечивая согласованность между структурой базы данных и логикой валидации во всем приложении.
Описание инструмента
Этот инструмент автоматически преобразует определения схем Prisma в схемы валидации Zod. Он анализирует ваши модели, перечисления и типы полей Prisma, затем генерирует соответствующие схемы Zod с правильным отображением типов. Инструмент обрабатывает необязательные поля, массивы и специальные типы Prisma, создавая готовые для TypeScript схемы валидации, которые отражают структуру вашей базы данных.
Возможности
- Автоматическое отображение типов: Преобразует типы Prisma (String, Int, DateTime и т.д.) в соответствующие валидаторы Zod
- Поддержка перечислений: Генерирует схемы перечислений Zod из определений перечислений Prisma
- Обработка массивов: Правильно преобразует поля-списки Prisma в валидаторы массивов Zod
- Необязательные поля: Сохраняет определения необязательных полей в генерируемых схемах Zod
- Типы TypeScript: Автоматически генерирует определения типов TypeScript с использованием
z.infer - Комментарии к связям: Добавляет комментарии для полей связей, которые нельзя напрямую преобразовать
- Множественные модели: Обрабатывает все модели и перечисления в одном файле схемы Prisma
- Подсветка синтаксиса: Редактор кода с подсветкой синтаксиса Prisma и TypeScript
Сценарии использования
- Валидация входных данных API: Проверка тел запросов на соответствие моделям базы данных
- Валидация форм: Использование схем Zod с библиотеками форм, такими как React Hook Form
- Типобезопасность: Обеспечение соответствия валидации времени выполнения схеме базы данных
- Генерация кода: Автоматическая генерация логики валидации из моделей базы данных
- Согласованность: Синхронизация схем валидации со структурой базы данных
- Резолверы GraphQL: Валидация входных данных в резолверах мутаций GraphQL
- Поддержка миграций: Обновление схем валидации при изменении моделей базы данных
Поддерживаемые отображения типов
String→z.string()Int,Float,Decimal→z.number()Boolean→z.boolean()DateTime→z.date()Json→z.record(z.any())Bytes→z.instanceof(Buffer)BigInt→z.bigint()- Пользовательские типы/перечисления →
z.lazy(() => TypeSchema) - Списки →
z.array() - Необязательные поля →
.optional()