xPulse
🇩🇪 DE
Seiten
Inhalt

Anleitung

Installation

npm install @xpulse/event --registry=https://npm.xpulse.one

Quickstart

import event from '@xpulse/event';
// Lauschen
event.on('app:ready', (data) => {
console.log('App bereit:', data.env);
});
// Feuern
event.emit('app:ready', { env: 'production' });

Lauschen

// Dauerhaft lauschen
event.on('page:ready', (data) => {
console.log(data.lang);
});
// Einmalig lauschen – Handler wird nach dem ersten Aufruf automatisch entfernt
event.once('project:ready', (data) => {
console.log('Project geladen:', data.name);
});
// Aufhören zu lauschen
const handler = (data) => { ... };
event.on('page:ready', handler);
event.off('page:ready', handler);

Feuern

event.emit('page:ready', { lang: 'de', route: '/privacy/' });

Payload ist optional – ein Event kann auch ohne Daten gefeuert werden:

event.emit('app:stopping');

Registrierung (optional)

Events können optional registriert werden – das dient der Dokumentation, ist aber kein Pflichtaufruf vor emit().

event.register('page:ready', {
description: 'Seite fertig gerendert, i18n kann übernehmen',
emittedBy: '@xpulse/project',
payload: '{ lang: string, route: string }',
});

Ein emit() auf einem nicht-registrierten Event funktioniert problemlos – das Event taucht nur nicht in event.list() auf.

Introspection

// Alle registrierten Events anzeigen
event.list();
// → [
// { name: 'page:ready', description: '...', emittedBy: '...', listeners: 2 },
// { name: 'app:ready', description: '...', emittedBy: '...', listeners: 1 },
// ]
// Aktive Listener für ein Event
event.listeners('page:ready');
// → [ [Function: handler1], [Function: handler2] ]
// Anzahl Listener
event.listenerCount('page:ready');
// → 2
de/guide.md 2026-03-13