Skip to content

Event Emitter

The Emitter class extends Node.js EventEmitter to automatically emit all events to '*' listeners in addition to specific event listeners.

API

typescript
// Extended EventEmitter that also emits all events to '*' listeners
export declare class Emitter extends EventEmitter {
  // Emits an event to listeners and to '*' listeners
  emit(type: string, ...args: any[]): boolean;
}

Example

typescript
import { Emitter } from '@welshman/lib';

const emitter = new Emitter();

// Listen for specific events
emitter.on('message', (data) => {
  console.log('Message:', data);
});

// Listen for all events with '*'
emitter.on('*', (eventType, ...args) => {
  console.log('Event:', eventType, args);
});

// Emit an event - triggers both listeners
emitter.emit('message', 'Hello world');
// Output:
// Event: message ['Hello world']
// Message: Hello world