Skip to main content
Glama
event-emitter.ts824 B
/** * Simple Event Emitter * Lightweight alternative to complex event bus */ export type EventHandler = (...args: any[]) => void | Promise<void>; export class EventEmitter { private handlers = new Map<string, Set<EventHandler>>(); on(event: string, handler: EventHandler): () => void { if (!this.handlers.has(event)) { this.handlers.set(event, new Set()); } this.handlers.get(event)?.add(handler); // Return unsubscribe function return () => this.off(event, handler); } off(event: string, handler: EventHandler): void { this.handlers.get(event)?.delete(handler); } emit(event: string, ...args: any[]): void { this.handlers.get(event)?.forEach((handler) => { try { handler(...args); } catch (error) { console.error(`Error in event handler for ${event}:`, error); } }); } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/eyaltoledano/claude-task-master'

If you have feedback or need assistance with the MCP directory API, please join our Discord server