xPulse
πŸ‡¬πŸ‡§ EN

API

event.on(name, handler)

Listens permanently for an event.

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.

event.once('project:ready', (data) => { ... });

event.off(name, handler)

Removes a specific listener.

const handler = (data) => { ... };
event.on('page:ready', handler);
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.

event.emit('page:ready', { lang: 'en', route: '/privacy/' });
event.emit('app:stopping'); // payload optional

event.register(name, meta)

Optionally documents an event with metadata. Not required.

event.register('page:ready', {
description: 'Page rendered, i18n can take over',
emittedBy: '@xpulse/project',
payload: '{ lang: string, route: string }',
});
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.list();
// β†’ [
// { name: 'page:ready', description: '...', emittedBy: '...', listeners: 2 },
// ]

event.listeners(name)

Returns all active listener functions for an event.

event.listeners('page:ready');
// β†’ [ [Function: handler1], [Function: handler2] ]

event.listenerCount(name)

Returns the number of active listeners for an event.

event.listenerCount('page:ready');
// β†’ 2
en/api.md 2026-04-13