Skip to content

v0.3.0

Choose a tag to compare

@KiowDev KiowDev released this 01 Aug 17:03
· 53 commits to main since this release
Immutable release. Only release title and notes can be modified.

Новая система обработки realtime и пакет для тестирования.

Realtime

  • Промежуточные обработчики обновлений через stream.use(). Обработчик может преобразовать обновление, выполнить действия до и после следующего обработчика либо остановить его дальнейшую передачу.
  • Типизированные подписки и фильтры через onUpdate() и onNotification(). Уведомления можно отбирать по типу, участнику, сущности, родительской сущности и дополнительному условию.
  • Маршрутизация обновлений через RealtimeRouter: отдельные цепочки обработчиков для разных типов событий и общий обработчик для остальных обновлений.
  • Управляемая конкурентность: concurrency задаёт число одновременно обрабатываемых обновлений, а sequentialize() сохраняет порядок для связанных событий.
  • Единый контекст обновления с нормализованными данными, источником и исходным транспортным кадром.
  • Универсальное событие message для низкоуровневого наблюдения за всеми кадрами realtime-транспорта.
  • Добавлены drain(), события ошибок обработчиков и предсказуемые снимки цепочек и маршрутов на момент получения обновления.

Тестирование

  • Новый пакет @itd-api/testing для проверки клиентов, плагинов и прикладных сценариев без настоящего API.
  • createMockFetch() позволяет задавать последовательности ответов, сетевые ошибки, задержки, незавершающиеся запросы и собственные маршруты.
  • createMockServer() предоставляет API-сервер в памяти с общим состоянием пользователей, записей, комментариев, реакций, подписок и уведомлений.
  • Операции клиентов изменяют состояние сервера: созданные записи и комментарии можно получить, изменить, удалить и восстановить.
  • Добавлены готовые заготовки данных, управляемые часы, тестовый realtime-транспорт и ответы Server-Sent Events.
  • Поддерживается проверка плагинов, повторных запросов, raw-ответов и сетевых перехватчиков клиента.

Технические улучшения

  • Добавлен интерфейс ItdClock для управления тайм-аутами, повторами, ограничением
    частоты запросов и переподключением realtime.
  • Retry-After в формате HTTP-даты учитывает часы клиента.
  • Обновлены руководства и справочник realtime.
  • Добавлена отдельная документация по @itd-api/testing.

Совместимость

  • Существующие REST-методы и событийные подписки realtime сохраняются.
  • @itd-api/testing@0.0.1 требует itd-api@^0.3.0.
  • Требуется Node.js 18 или новее.

Full Changelog: v0.2.0...v0.3.0