UNPKG

@just-every/ensemble

Version:

LLM provider abstraction layer with unified streaming interface

40 lines 1.08 kB
export class EventEmitter { events = new Map(); on(event, listener) { if (!this.events.has(event)) { this.events.set(event, new Set()); } this.events.get(event).add(listener); } off(event, listener) { const listeners = this.events.get(event); if (listeners) { listeners.delete(listener); if (listeners.size === 0) { this.events.delete(event); } } } emit(event, ...args) { const listeners = this.events.get(event); if (listeners) { listeners.forEach(listener => { try { listener(...args); } catch (error) { console.error(`Error in event listener for ${event}:`, error); } }); } } removeAllListeners(event) { if (event) { this.events.delete(event); } else { this.events.clear(); } } } //# sourceMappingURL=event_emitter.js.map