Новый Valibot - альтернатива Zod для валидации

  Рет қаралды 5,609

PurpleSchool | Anton Larichev

PurpleSchool | Anton Larichev

Күн бұрын

Пікірлер: 63
@PurpleSchool
@PurpleSchool Жыл бұрын
🔗 Ссылки: Valibot: valibot.dev/ 🎉 Курсы по TypeScript: purpleschool.ru/course/typescript 🎓 Мои курсы по разработке: purpleschool.ru 💬 Telegram канал с полезными советами: t.me/purple_code_channel
@holingdev1737
@holingdev1737 Жыл бұрын
Спасибо, что делитесь интересными инструментами.
@PurpleSchool
@PurpleSchool Жыл бұрын
Пожалуйста!
@Илья-э7ю9в
@Илья-э7ю9в Жыл бұрын
Классный инструмент. Спасибо что делишься интересными новинками)
@PurpleSchool
@PurpleSchool Жыл бұрын
Пожалуйста!
@witseid
@witseid Жыл бұрын
Спасибо за вывод клавиш в нижнем правом углу :)))
@PurpleSchool
@PurpleSchool Жыл бұрын
Пожалуйста)
@Velichkina_a
@Velichkina_a Жыл бұрын
Спасибо, полезная штука
@PurpleSchool
@PurpleSchool Жыл бұрын
Пожалуйста 👍
@maksikgregory4988
@maksikgregory4988 Жыл бұрын
Очень интересно. Спасибо. Я когда-то делал таблицу, для записи в базу хостнеймов с параметрами подключения, и там были разные условия, например, в хостнейме нельзя использовтаь символы двоеточния, кавычки разные, и вобще другие спецсимволы. А в пути к ключу ssh тоже чего-то там нельзя использовать, и порт ссш всегда должен быть числом и не больше 65к. Это приблизительно, вот сам функция, причем я по факту только учу эту тему, и писал ровно так, насколько у меня хватало понимания :) то есть скорее всего сделано через пень колоду, но эта функция работала и в целом вроде даже не плохо, возвращала false если там что-то было левое в ячейке: function isCellValid(cellValue, cellClass) { // Если ячейка редактируется через модальное окно и значение равно {{uploaded}}, возвращаем true. // Используется для загрузки ssh-key. if (isModalEdit && cellValue === '{{uploaded}}') { return true; } switch (cellClass) { case 'hostname': return /^[a-z0-9.+/-]+$/i.test(cellValue) && !/[!"'(){}\[\]@#$%^&*;]/.test(cellValue); case 'alias': case 'user': // Запрещены двоеточия, одинарные и двойные кавычки return !/[:"'"]/.test(cellValue); case 'ssh_key_path': return /^[a-z0-9.+/_-]+$/i.test(cellValue) && !/[!"'(){}\[\]@#$%^&*;]/.test(cellValue); case 'ssh_port': return Number.isInteger(+cellValue) && +cellValue >= 0 && +cellValue
@PurpleSchool
@PurpleSchool Жыл бұрын
Конечно, просто пишите свой кастомный валидатор
@maksikgregory4988
@maksikgregory4988 Жыл бұрын
​@@PurpleSchoolда, я ещё поспешил писать коммент не досмотрев видео до финала. Та вы рассказываете про age и диапазон можно описать.
@artyomtaranenko2267
@artyomtaranenko2267 Жыл бұрын
Valibot - прикольная штука, даже апишка похожа на zod. Мне кажется, что похожая история будет с ts-rest и trpc)
@PurpleSchool
@PurpleSchool Жыл бұрын
Да)
@dmitriy4415
@dmitriy4415 Жыл бұрын
Норм штука. Спасибо.
@PurpleSchool
@PurpleSchool Жыл бұрын
Пожалуйста!
@ВасилийБрагин-с4п
@ВасилийБрагин-с4п Жыл бұрын
Спасибо!
@PurpleSchool
@PurpleSchool Жыл бұрын
Пожалуйста!
@needcode86
@needcode86 Жыл бұрын
Привет, а в production в NestJS, что используешь? Class-validator?
@PurpleSchool
@PurpleSchool Жыл бұрын
Сейчас да, чаще его
@PutlerXLO
@PutlerXLO Жыл бұрын
месяц библиотеке и уже туториалы )
@PurpleSchool
@PurpleSchool Жыл бұрын
Да, слежу за новинками, чтобы вам рассказывать)
@Cinerable
@Cinerable Жыл бұрын
@@PurpleSchoolАнтон, а подскажите где вы следите за новинками?)
@StrikerFeed
@StrikerFeed Жыл бұрын
Где можно посмотреть примеры использования НЕ class-validator, а как раз таки чего-нибудь из yup, zod и т.п. для валидации на бэке? Везде class-validator.
@Disorrder
@Disorrder Жыл бұрын
Посмотри trpc
@CJIu3eHb
@CJIu3eHb Жыл бұрын
Аааа, горшочек, не вари! Только вчера про zod узнали, а уже вырос его убийца. Было бы интересно сравнение, в чем таки zod сейчас выигрывает. Кроме как различными интеграциями от коммьюнити, например с тем же nest.
@PurpleSchool
@PurpleSchool Жыл бұрын
👍
@АнтонСурыгин-ф9ж
@АнтонСурыгин-ф9ж Жыл бұрын
Я как то не понял, это библиотека для валидации на бэке? Или для фронта тоже подходит? Я пока не очень в силен в JS, но вопрос валидации форм для меня крайне актуален ) Кстати как раз прохожу ваш курс, базовый JS =)
@PurpleSchool
@PurpleSchool Жыл бұрын
Круто) эта библиотека подходит как для фронта, так и для бека. На фронте она как раз имеет преимущество относительно других библиотек за счёт малого веса.
@SalexTT
@SalexTT Жыл бұрын
Полезный материал!
@PurpleSchool
@PurpleSchool Жыл бұрын
Спасибо!
@PeterMorris-nq2ly
@PeterMorris-nq2ly Жыл бұрын
Рассскажите пожалуйста про то как работают под капотом class-transformer и reflect-metadata а также оверхед которые они добавляют. З
@PurpleSchool
@PurpleSchool Жыл бұрын
Один из видео не обойтись, можете посмотреть у меня в курсе но TypeScript целый раздел про это.
@iBird
@iBird Жыл бұрын
а откуда такие подсказки крутые в ide?
@PurpleSchool
@PurpleSchool Жыл бұрын
Это плагин cmp для neovim
@al77ex1
@al77ex1 Жыл бұрын
Интересно почему Joi не прижился в несте или valibot просто другой инструмент того же назначения?
@PurpleSchool
@PurpleSchool Жыл бұрын
Просто другой инструмент.
@L0wPressure
@L0wPressure Жыл бұрын
Joi тоже юзают, но в основном в несте все юзают стандартные class-validator/transformer.
@2009Spread
@2009Spread Жыл бұрын
Joi хорош но уже пора на пенсию
@sergeimalinin
@sergeimalinin Жыл бұрын
Хм. Когда мы интегрируем фронтенд со сторонней апишкой, которая в любой момент может поменяться - использование понятно. Но стоит ли заниматься подобной валидацией, если мы работаем с нашим бэком, которому мы доверяем?🧐
@PurpleSchool
@PurpleSchool Жыл бұрын
Для работы со свои беком не думаю. Скорее это валидация запросов на бэк с его стороны, валидация форм и прочее.
@virtual5754
@virtual5754 Жыл бұрын
Эта библиотека умеет делать схему из типа/интерфейса? У zod, который громко называет себя typescript-first, такого нет, поэтому в случаях, когда тип уже создан (например, автоматически сгенерирован другим процессом), приходится вручную задавать схему и дублировать (а фактически схема даже больше типа) код.
@PurpleSchool
@PurpleSchool Жыл бұрын
Схему из типа она не сделает, так как типов нет в runtime, но тип из схемы выведет, как я и показываю.
@Ярослав-т2э9б
@Ярослав-т2э9б Жыл бұрын
Честно не очень понимаю этой погони за килобайтами, при современном интернете 1кб или 100кб - сколько разница будет, тысячная секунды?
@PurpleSchool
@PurpleSchool Жыл бұрын
Так дело не в размере загружаемого JS, а в размере исполняемого, так как это нагрузка на процессор для слабых устройств.
@Ярослав-т2э9б
@Ярослав-т2э9б Жыл бұрын
@@PurpleSchool Еще большая "экономия на спичках", как по мне, это совсем не то, ради чего стоит жертвовать удобством класс-валидатора
@alexperemey6046
@alexperemey6046 Жыл бұрын
​@@Ярослав-т2э9б Размер исходного бандла - это сейчас узкое место в разработке. Куча мобильных устройств тормозит из-за неумеренного использования зависимостей, быстро садится батарея и т.п..
@un_defined
@un_defined Жыл бұрын
@@Ярослав-т2э9б вот из-за таких программистов сейчас ос на холостых жрет по 3гб по сути выполняя функции те же что когда-то хр например в 256 мб ))
@Ярослав-т2э9б
@Ярослав-т2э9б Жыл бұрын
@@un_defined А чего не 3.11, функции же совсем не расширяются? )) У меня в моем стареньком телефоне оперативы больше, чем в компе был хард, когда XP вышел, может поэтому? 😁
@BorderInVais
@BorderInVais Жыл бұрын
Когда обзор на nvchad?:)
@PurpleSchool
@PurpleSchool Жыл бұрын
Пока точных сроков нет)
@un_defined
@un_defined Жыл бұрын
мерси
@PurpleSchool
@PurpleSchool Жыл бұрын
👍
@dmitripolevoi4473
@dmitripolevoi4473 Жыл бұрын
Почему нельзя посмотреть код библиотеки с комментариями, а не смотреть доку
@PurpleSchool
@PurpleSchool Жыл бұрын
Можно)
@izzy7541
@izzy7541 Жыл бұрын
zod реально слишком жирный для фронтенда, когда надо всего лишь сделать схему и показать ошибки. Зод сейчас тянет кучу всего не нужного и насколько я понимаю веса добавляет возможность чейнинга в схемах
@PurpleSchool
@PurpleSchool Жыл бұрын
👍
@RussianFrontend
@RussianFrontend Жыл бұрын
Чем он жирный?
@ivanselyt
@ivanselyt Жыл бұрын
только у меня не работает сайт валибота?
@ДенисКуликов-м3о
@ДенисКуликов-м3о Жыл бұрын
Да. Как видим проект не долго просуществовал
@PurpleSchool
@PurpleSchool Жыл бұрын
)))
@ivanselyt
@ivanselyt Жыл бұрын
@@PurpleSchool не в курсе что с ним? никогда не видел такую ошибку хрома 404
@PurpleSchool
@PurpleSchool Жыл бұрын
Нет, может мы положили)
Новый TypeScript 5.2 - оператор using
20:01
PurpleSchool | Anton Larichev
Рет қаралды 10 М.
Zod: валидация Nestjs и контракты для React
17:06
PurpleSchool | Anton Larichev
Рет қаралды 7 М.
Wait… Maxim, did you just eat 8 BURGERS?!🍔😳| Free Fire Official
00:13
Garena Free Fire Global
Рет қаралды 9 МЛН
Human vs Jet Engine
00:19
MrBeast
Рет қаралды 200 МЛН
How Strong is Tin Foil? 💪
00:25
Brianna
Рет қаралды 68 МЛН
Zod для валидации API и форм
20:19
Михаил Непомнящий
Рет қаралды 13 М.
Everyone's talking about Valibot
4:42
Matt Pocock
Рет қаралды 46 М.
JWT авторизация. Основы JWT - механизма.
6:45
Хочу вАйти
Рет қаралды 15 М.
Beginner React.js Coding Interview (ft. Clément Mihailescu)
36:31
Ben Awad
Рет қаралды 2,2 МЛН
40 APIs Every Developer Should Use (in 12 minutes)
12:23
Coding with Lewis
Рет қаралды 385 М.
Bun 1.0: вместо Node.js?
23:06
PurpleSchool | Anton Larichev
Рет қаралды 22 М.
Why aren't you using Fastify? Or Koa? Or NestJS?
9:58
Maximilian Schwarzmüller
Рет қаралды 64 М.
Что за HTMX и как использовать с Nestjs?
24:31
PurpleSchool | Anton Larichev
Рет қаралды 13 М.
Wait… Maxim, did you just eat 8 BURGERS?!🍔😳| Free Fire Official
00:13
Garena Free Fire Global
Рет қаралды 9 МЛН