( event: Event | null, hint: EventHint, processors: EventProcessor[], index: number, )
| 23 | } |
| 24 | |
| 25 | function _notifyEventProcessors( |
| 26 | event: Event | null, |
| 27 | hint: EventHint, |
| 28 | processors: EventProcessor[], |
| 29 | index: number, |
| 30 | ): Event | null | PromiseLike<Event | null> { |
| 31 | const processor = processors[index]; |
| 32 | |
| 33 | if (!event || !processor) { |
| 34 | return event; |
| 35 | } |
| 36 | |
| 37 | const result = processor({ ...event }, hint); |
| 38 | |
| 39 | DEBUG_BUILD && result === null && debug.log(`Event processor "${processor.id || '?'}" dropped event`); |
| 40 | |
| 41 | if (isThenable(result)) { |
| 42 | return result.then(final => _notifyEventProcessors(final, hint, processors, index + 1)); |
| 43 | } |
| 44 | |
| 45 | return _notifyEventProcessors(result, hint, processors, index + 1); |
| 46 | } |
no test coverage detected