v0.3.0
·
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