



Ajv-ts версии 0.7 и щепотка typescript
Всем привет! Меня зовут Виталий. Я - инженер по автоматизации тестирования (SDET). Сегодня хотелось бы рассказать личную новость для меня и моего творения - Ajv-ts. На днях я смог выпустить версию 0.7. Предыдщая версия(0.6.3) была сделана 1 февраля 2024 года! 😱
Кстати, почему родился этот проект можете почитать здесь.
Ajv-ts не является официальной библиотекой от команды ajv.
Из-за того, что данный проект родился спонтанно, - то и работаю я над ним в нерабочее время, отсюда и большой перерыв между релизами.
Итак давайте уже перейдем к новым штукам
Я давно уже приметил эту фичу, но руки никак не доходили. Дело в том, что я использую ajv-error - это официальная библиотека от команды ajv. До этого уже был заложен АПИ, но дело в том, что в прошлой версии в функцию error я принимал только строку. Т.е. любая ошибка была бы сконвертирована в то, что написали. Хотя часто возникают ситуации, когда надо отдельно валидировать. Например тип, и дополнительные свойства у объекта могут возвращать разные сообщения об ошибке. Общее сообщение я не убирал по той причине, что сам ajv-error поддерживает такой формат.
Вот несколько примеров
Часто схемы описываются сразу, т.е. динамического контента не так много. Плюс заметил такой баг - я перепутал minLength и maxLength. Тогда мне в голову пришла идея - во что бы то ни стало потренироваться с typescript и попробовать сделать так, чтобы ты низачто не перепутал длины местами.
Уже предвижу коментарии в духе - "так если у меня схема динамическая? получается typescript будет ругаться". Да, придется кастить. Как я уже написал до этого - обычно(≠ всегда) схемы описываются сразу. Я пошел на компромисс. Бонусом к этой фиче идет то, что для конечного полльзователя я сделал удобную систему ошибок.
Вот и все,
Читать на habr.com