API
event.on(name, handler)
Listens permanently for an event.
| 1 | event.on('page:ready', (data) => { ... }); |
| Parameter |
Type |
Description |
name |
string |
Event name β exact match, wildcards (page:*) are not supported |
handler |
function |
Callback, receives the payload |
event.once(name, handler)
Listens once β the handler is automatically removed after the first call.
| 1 | event.once('project:ready', (data) => { ... }); |
event.off(name, handler)
Removes a specific listener.
| 1 | const handler = (data) => { ... }; |
| 2 | event.on('page:ready', handler); |
| 3 | event.off('page:ready', handler); |
The same handler reference must be passed β anonymous functions cannot be removed.
event.emit(name, payload?)
Fires an event. All active listeners are called synchronously.
| 1 | event.emit('page:ready', { lang: 'en', route: '/privacy/' }); |
| 2 | event.emit('app:stopping'); |
Optionally documents an event with metadata. Not required.
| 1 | event.register('page:ready', { |
| 2 | description: 'Page rendered, i18n can take over', |
| 3 | emittedBy: '@xpulse/project', |
| 4 | payload: '{ lang: string, route: string }', |
| 5 | }); |
| Parameter |
Type |
Description |
name |
string |
Event name |
meta.description |
string |
What the event means |
meta.emittedBy |
string |
Which package emits the event |
meta.payload |
string |
Payload structure as string |
event.list()
Returns all registered events with metadata.
event.listeners(name)
Returns all active listener functions for an event.
| 1 | event.listeners('page:ready'); |
| 2 | |
event.listenerCount(name)
Returns the number of active listeners for an event.
| 1 | event.listenerCount('page:ready'); |
| 2 | |