Спасибо за видео! Как по мне, так это хорошая замена библиотеке class-validator Но, на бэке для респонса использую Automapper. Что на счет его использования вместе с zod? Или может быть есть какая-то хорошая альтернатива автомапперу?
nestjs-zod в документации предлагают создавать схемы при помощи модифицированной версии zod'a и импортироваться из nestjs-zod/z. Я могу такую схему юзать на фронте тоже? Чем они отличаются? Просто добавлением дополнительных методов к уже имеющимся?
Можно показать пример, как использовать ZOD для get запросов а именно с query params. Загвоздка в том, что все гет параметры считаются как string, в этом случае boolean и number не пройдут валидацию через zod. Спасибо заранее
Спасибо за видео! Я еще видел вариант, когда берут какую-то спецификацию swagger/graphql и из нее кодгеном делают полноценную sdk для работы с бекендом И тоже хранят в npm для удобного доступа. Что думаете о таком способе?
Антон, добрый день! С интересом посмотрел видео. Пытаюсь накинуть в свой проект. Все замечательно работает: и входные данные валидируются и выходные парсятся в необходимый тип (теперь в ORM Prisma не надо заморачиваться с тем, какие поля вытаскивать в селект и т. ). Но возникли трудности с парсингом для полей типа Prisma.Decimal. Можете подсказать элегантное решение?
Антон, как ты добился такого вида статус бара в tmux?, визуально выглядит как nvchad. Я о нижней строке, это же tmux? И когда уже будет обзор на nvchad?)
оо, так это ж получается, что эти валидации теперь и в формочки можно подсовывать? чтобы бек лишний раз не дергать за ошибками, а на клиенте уже их светить
под капотом оно делает не строгие типы. Я пытаюсь передать дто в сервис, в котором тип призмы и поле там строгое, не получается. Он жалуется, что некоторые поля опциональные@@PurpleSchool
я сейчас с проблемой столкнулся, для запуска frontend я использую vercel, он бесплатный и сильно упрощает запуск приложения. Но nestjs приложение там запускать нельзя или по крайне мере оно будет ограничено. Ктонибудб знает что можно использовать для такого же простого и удобного запуска nestjs как vercel?
круто) покажи еще, плиз, генерацию опен-апи спеки и генерацию фетчеров для клиента и было бы круто еще к этому премеру зод подключить, чтобы показать, как оно всё вместе) но раз там будет сваггер, то нет смысла контракты генерить по зоду, по спеке же будет всё генериться, да?
Если собрать все в монорепо, то не придется ничего никуда паблишить, ну и валидацию хочется делать как на фронте, так и на бэке. Ждем пока Камиль догадается подкинуть zod из коробки вместо отвратительного class-validator.
🔗 Ссылки:
🎓 Мои курсы по разработке: purpleschool.ru
💬 Telegram канал с полезными советами:
t.me/purple_code_channel
Почему я не видел этот канал раньше. Очень хороший контент!
Спасибо!
Антон, какая ж это красота! Крутое решение. Определённо буду использовать его в проектах. Большое спасибо за видео)))
Спасибо!
всегда интересные и качественные видео!! Спасибо большое!
Пожалуйста!
Спасибо за видео!
Как по мне, так это хорошая замена библиотеке class-validator
Но, на бэке для респонса использую Automapper. Что на счет его использования вместе с zod? Или может быть есть какая-то хорошая альтернатива автомапперу?
Спасибо! Вместе с автомаппером не использовал
А где можно скачать твой конфиг консоли и vim?
Будет разбор и ссылка в следующем видео
nestjs-zod в документации предлагают создавать схемы при помощи модифицированной версии zod'a и импортироваться из nestjs-zod/z. Я могу такую схему юзать на фронте тоже? Чем они отличаются? Просто добавлением дополнительных методов к уже имеющимся?
Чтобы использовать на фронте надо будет туда её и тянуть, а это не очень хорошее решение
Можно показать пример, как использовать ZOD для get запросов а именно с query params. Загвоздка в том, что все гет параметры считаются как string, в этом случае boolean и number не пройдут валидацию через zod. Спасибо заранее
В рамках Zod можно задать трансформацию при получении, а затем валидацию
Спасибо за видео!
Я еще видел вариант, когда берут какую-то спецификацию swagger/graphql и из нее кодгеном делают полноценную sdk для работы с бекендом
И тоже хранят в npm для удобного доступа. Что думаете о таком способе?
Вполне тоже вариант рабочий
стоит ли сейчас использовать nestjs-zod? Я прочитал что автор написал о том что пакет больше не поддерживается им
Недавно автор передал репозиторий другому человеку и он обещал поддерживать пакет
Npm пакет получился публичным, возможно сделать приватным, но на уровне компании этим удобно пользоваться?
Можно, но нужно будет или npm платить 7$ за пользователя или делать свой приватный регистри.
@@PurpleSchool , понял, спасибо
Антон, добрый день! С интересом посмотрел видео. Пытаюсь накинуть в свой проект. Все замечательно работает: и входные данные валидируются и выходные парсятся в необходимый тип (теперь в ORM Prisma не надо заморачиваться с тем, какие поля вытаскивать в селект и т. ). Но возникли трудности с парсингом для полей типа Prisma.Decimal. Можете подсказать элегантное решение?
Мне кажется типы Prisma не надо использовать в dto
Очень полезное видео!!! http запросы через какое расширение делаешь?
Через httpie
Подскажи это Codeium делает подсказки?
Да, он самый
@@PurpleSchool круто, тоже его использую удобен для nvim, да и продуктивность в пару раз поднимает так точно на каких-то базовых вещах
Антон, как ты добился такого вида статус бара в tmux?, визуально выглядит как nvchad. Я о нижней строке, это же tmux? И когда уже будет обзор на nvchad?)
Да, это он. У меня на канале есть видео его настройки. Nvchad будет следующим
@@PurpleSchool видео по tmux смотрел, просто интересно как сделал такой красивый статус бар в tmux, что он выглядит как статус бар nvchad-а))
Спасибо, видео просто огонь 🔥
А ответ от сервера тоже проходит валидацию через zod?
В данном примере нет, но можно сделать. Хотя при строгой типизации на беке это будет излишне
оо, так это ж получается, что эти валидации теперь и в формочки можно подсовывать? чтобы бек лишний раз не дергать за ошибками, а на клиенте уже их светить
конечно
Только получается типы всегда не строгие? Например этот UserLoginResponse содержит accessToken?: string;
я тоже этого момента не понял. Щас пытаюсь переписать и у меня все типы не строгие, а призма требует строгие...
Нет, в типах он
type UserLoginResponse = {
accessToken: string;
}
под капотом оно делает не строгие типы. Я пытаюсь передать дто в сервис, в котором тип призмы и поле там строгое, не получается. Он жалуется, что некоторые поля опциональные@@PurpleSchool
я сейчас с проблемой столкнулся, для запуска frontend я использую vercel, он бесплатный и сильно упрощает запуск приложения. Но nestjs приложение там запускать нельзя или по крайне мере оно будет ограничено. Ктонибудб знает что можно использовать для такого же простого и удобного запуска nestjs как vercel?
railway
публиковать контракты в нпм конечно круто но можно глянуть в сторону git subtree
Да, тоже вариант
Класс. Плавно подошли к монорепам?)
Тоже рассмотрим)
Помню падал бек из-за NaN значения в zod😢
Ого, не ловил такое
круто)
покажи еще, плиз, генерацию опен-апи спеки и генерацию фетчеров для клиента
и было бы круто еще к этому премеру зод подключить, чтобы показать, как оно всё вместе) но раз там будет сваггер, то нет смысла контракты генерить по зоду, по спеке же будет всё генериться, да?
Про наличии контрактов не нужно городить отдельно Open API
@@PurpleSchool ну а как же спека
@@PurpleSchool или спеку тоже можно генерить?
По-моему, пропущена история подключения контрактов к nestjs внутри этого "монорепо".
Там нет подключения, ты просто ссылаешь на контракт, так как по сути это не монорепа
@@PurpleSchool добавлено в зависимости а-ля "bar": "file:///home/user/src/foo/bar"?
Если собрать все в монорепо, то не придется ничего никуда паблишить, ну и валидацию хочется делать как на фронте, так и на бэке. Ждем пока Камиль догадается подкинуть zod из коробки вместо отвратительного class-validator.
Пока нет на это намёков)
В этом видео так много Z, что можно случайно попасть в политическую партию)
🤣
В психбольницу
Все через z, ясно, вполне привычно
Так уж библиотека устроена
не могу понять как ютуб работает) 23 коментария всего но отображается 8
Тестировщиков на них нет)