itd-api / EventComposer
Class: EventComposer<C>
Defined in: events/composer.ts:136
Собирает переиспользуемую цепочку обработчиков событий.
Не открывает соединение. Готовый объект подключается через stream.use(composer). Для каждого обновления используется текущий снимок вложенных обработчиков.
Example
const feature = new EventComposer<AppEventContext>();
const safe = feature.errorBoundary(reportFeatureError);
safe.filter(isPostUpdate).use(handlePost);
stream.use(feature);Type Parameters
C
C extends EventContext = NotificationEventContext
Implements
Constructors
Constructor
new EventComposer<C>(...middleware): EventComposer<C>;Defined in: events/composer.ts:141
Parameters
middleware
...readonly EventMiddlewareLike<C>[]
Returns
EventComposer<C>
Methods
errorBoundary()
errorBoundary(handler, ...middleware): EventComposer<C>;Defined in: events/composer.ts:224
Создаёт дочернюю ветку с локальной границей ошибок.
Перехватывает ошибки только из дочерней ветки. Вызов next() в обработчике ошибки продолжает внешнюю цепочку.
Parameters
handler
middleware
...readonly EventMiddlewareLike<C>[]
Returns
EventComposer<C>
filter()
Call Signature
filter<N>(predicate, ...middleware): EventComposer<N>;Defined in: events/composer.ts:153
Создаёт дочернюю ветку для контекста указанного типа.
Type Parameters
N
N extends EventContext<unknown, unknown, unknown>
Parameters
predicate
EventTypeGuard<N, C>
middleware
...readonly EventMiddlewareLike<N>[]
Returns
EventComposer<N>
Call Signature
filter(predicate, ...middleware): EventComposer<C>;Defined in: events/composer.ts:158
Создаёт дочернюю ветку по синхронному или асинхронному условию.
Parameters
predicate
EventFilter<C>
middleware
...readonly EventMiddlewareLike<C>[]
Returns
EventComposer<C>
middleware()
middleware(): EventMiddleware<C>;Defined in: events/composer.ts:257
Возвращает промежуточный обработчик для stream.use() или вложенной цепочки.
Returns
Implementation of
EventMiddlewareObject.middleware
route()
route<K>(
selector,
routes,
fallback?): this;Defined in: events/composer.ts:190
Направляет контекст в одну именованную ветку.
Неизвестный ключ без запасной ветки передаёт обновление следующему обработчику. Для динамической регистрации и числовых ключей используйте EventRouter напрямую.
Type Parameters
K
K extends string | symbol
Parameters
selector
EventRouteSelector<K, C>
routes
EventRouteTable<K, C>
fallback?
Returns
this
use()
use(...middleware): this;Defined in: events/composer.ts:146
Добавляет промежуточные обработчики в конец цепочки.
Parameters
middleware
...readonly EventMiddlewareLike<C>[]
Returns
this