UNPKG

ai-ip-plugin

Version:

AI-IP Plugin for MCP Workflow Management with SSE streaming and event handling

73 lines 1.82 kB
"use strict"; /** * Event Handler - Manages event emission and listening */ Object.defineProperty(exports, "__esModule", { value: true }); exports.EventHandler = void 0; class EventHandler { constructor() { this.listeners = new Map(); } /** * Add event listener */ on(event, listener) { if (!this.listeners.has(event)) { this.listeners.set(event, []); } this.listeners.get(event).push(listener); } /** * Remove event listener */ off(event, listener) { const eventListeners = this.listeners.get(event); if (eventListeners) { const index = eventListeners.indexOf(listener); if (index > -1) { eventListeners.splice(index, 1); } } } /** * Emit event */ emit(event, ...args) { const eventListeners = this.listeners.get(event); if (eventListeners) { eventListeners.forEach(listener => { try { listener(...args); } catch (error) { console.error(`Error in event listener for ${event}:`, error); } }); } } /** * Remove all listeners for an event */ removeAllListeners(event) { if (event) { this.listeners.delete(event); } else { this.listeners.clear(); } } /** * Get all event names */ getEventNames() { return Array.from(this.listeners.keys()); } /** * Get listener count for an event */ getListenerCount(event) { return this.listeners.get(event)?.length || 0; } } exports.EventHandler = EventHandler; //# sourceMappingURL=EventHandler.js.map