← Все проекты
Проект / TypeScript

antfu/tsnapi: tsnapi — снапшот-тестирование публичного API для TypeScript-библиотек

Автоматически лови случайные изменения в публичном API вашей библиотеки до того, как они уйдут пользователям.

Инструмент для снапшот-тестирования публичного API TypeScript-библиотек. Захватывает всё, что экспортирует ваша библиотека — и рантайм-экспорты, и типы — в читаемые файлы-снапшоты. Когда API меняется неожиданно, вы видите diff в git. Похоже на...

★ 79 TypeScript Форки 1 Issue 1 Оценка 7/10 Карточка проверена

Для кого это

Для разработчиков TypeScript-библиотек, которые хотят избежать случайных breaking changes и поддерживать стабильный публичный контракт.

Проблема / задача

При разработке библиотеки легко по ошибке удалить экспорт, изменить сигнатуру функции или сломать типы — и заметить это только когда пользователи начнут жаловаться.

Как это работает

tsnapi анализирует скомпилированные файлы вашей библиотеки (JavaScript и TypeScript-декларации) и создаёт человекочитаемые снапшоты публичного API. Эти снапшоты коммитятся в репозиторий. При следующих сборках система сравнивает текущий API с сохранённым снапшотом и падает с понятным diff, если что-то изменилось. Можно использовать как плагин для сборщика tsdown/Rolldown, как CLI-утилиту или интегрировать с Vitest.

Что видно по README

Инструмент для снапшот-тестирования публичного API TypeScript-библиотек. Захватывает всё, что экспортирует ваша библиотека — и рантайм-экспорты, и типы — в читаемые файлы-снапшоты. Когда API меняется неожиданно, вы видите diff в git. Похоже на снапшот-тестирование Vitest, но для публичного контракта пакета, а не для данных.

Ключевые возможности

Снапшоты и рантайм-экспортов, и TypeScript-декларацийИнтеграция с tsdown/Rolldown как плагинАвтономный CLI для анализа собранных dist-файловИнтеграция с Vitest через generateApiSnapshotПонятный diff при изменениях APIРежим обновления снапшотов для преднамеренных изменений

Технологии

TypeScriptRolldown/tsdownVitestOxc Parser

Темы и ключи

snapshotsnapshot-testing

Интересный факт

Проект создан Anthony Fu (antfu) — известным разработчиком экосистемы Vite и автором множества популярных инструментов для TypeScript-разработчиков.

С чего начать

  • Установите: pnpm add -D tsnapi
  • Добавьте плагин ApiSnapshot() в конфиг tsdown
  • Запустите сборку — появятся файлы .snapshot.js и .snapshot.d.ts
  • Закоммитьте снапшоты в репозиторий

Оценка GitRadar

Удобство
8/10
Свежесть
8/10
Перспектива
7/10
Монетизация
4/10
Общая оценка
7/10

Вердикт GitRadar

Стоит попробовать, если вы поддерживаете TypeScript-библиотеку с публичным API. Это простой способ добавить защиту от случайных breaking changes с минимальными настройками. Особенно удобно с tsdown.

Наблюдения по обновлениям

Проект свежий (v0.1.1), активно развивается, есть pre-commit хук для автотестов, но звёзд и форков пока немного. Автор известный, что добавляет доверия.

Что мы проверили

Карточка собрана по данным GitHub, README и структуре репозитория. Это не официальная документация проекта.

Исходный репозиторий
https://github.com/antfu/tsnapi
Лицензия
MIT
Создан на GitHub
10 апреля 2026 г.
Последнее обновление репо
10 апреля 2026 г.
Последняя проверка GitRadar
10 апреля 2026 г.
Изученные файлы
README.md, src/index.ts, package.json, src/core/index.ts, src/cli.ts, test/fixtures/sub-exports/src/index.ts

FAQ

Что это такое?

Инструмент для снапшот-тестирования публичного API TypeScript-библиотек. Сохраняет, что экспортирует ваша библиотека, в файлы и следит за изменениями.

Для кого подходит?

Для разработчиков TypeScript-библиотек, которые хотят автоматически обнаруживать случайные изменения в публичном API до релиза.

Источники

  • GitHub исходный код и активность
  • README описание, ссылки, стартовые материалы

Нужна помощь с antfu/tsnapi?

Если проект подходит под ваш сценарий, можем помочь с установкой, интеграцией, доработкой или аккуратным форком под вашу инфраструктуру.