Что это такое?
Инструмент для снапшот-тестирования публичного API TypeScript-библиотек. Сохраняет, что экспортирует ваша библиотека, в файлы и следит за изменениями.
Инструмент для снапшот-тестирования публичного API TypeScript-библиотек. Захватывает всё, что экспортирует ваша библиотека — и рантайм-экспорты, и типы — в читаемые файлы-снапшоты. Когда API меняется неожиданно, вы видите diff в git. Похоже на...
Для разработчиков TypeScript-библиотек, которые хотят избежать случайных breaking changes и поддерживать стабильный публичный контракт.
При разработке библиотеки легко по ошибке удалить экспорт, изменить сигнатуру функции или сломать типы — и заметить это только когда пользователи начнут жаловаться.
tsnapi анализирует скомпилированные файлы вашей библиотеки (JavaScript и TypeScript-декларации) и создаёт человекочитаемые снапшоты публичного API. Эти снапшоты коммитятся в репозиторий. При следующих сборках система сравнивает текущий API с сохранённым снапшотом и падает с понятным diff, если что-то изменилось. Можно использовать как плагин для сборщика tsdown/Rolldown, как CLI-утилиту или интегрировать с Vitest.
Инструмент для снапшот-тестирования публичного API TypeScript-библиотек. Захватывает всё, что экспортирует ваша библиотека — и рантайм-экспорты, и типы — в читаемые файлы-снапшоты. Когда API меняется неожиданно, вы видите diff в git. Похоже на снапшот-тестирование Vitest, но для публичного контракта пакета, а не для данных.
Проект создан Anthony Fu (antfu) — известным разработчиком экосистемы Vite и автором множества популярных инструментов для TypeScript-разработчиков.
Стоит попробовать, если вы поддерживаете TypeScript-библиотеку с публичным API. Это простой способ добавить защиту от случайных breaking changes с минимальными настройками. Особенно удобно с tsdown.
Проект свежий (v0.1.1), активно развивается, есть pre-commit хук для автотестов, но звёзд и форков пока немного. Автор известный, что добавляет доверия.
Карточка собрана по данным GitHub, README и структуре репозитория. Это не официальная документация проекта.
Инструмент для снапшот-тестирования публичного API TypeScript-библиотек. Сохраняет, что экспортирует ваша библиотека, в файлы и следит за изменениями.
Для разработчиков TypeScript-библиотек, которые хотят автоматически обнаруживать случайные изменения в публичном API до релиза.
Если проект подходит под ваш сценарий, можем помочь с установкой, интеграцией, доработкой или аккуратным форком под вашу инфраструктуру.