claude-flow-tbowman01
Version:
Enterprise-grade AI agent orchestration with ruv-swarm integration (Alpha Release)
42 lines (35 loc) • 1.04 kB
text/typescript
/**
* Simple EventEmitter implementation for process management
*/
type EventHandler = (...args: any[]) => void;
export class EventEmitter {
private events: Map<string, EventHandler[]> = new Map();
on(event: string, handler: EventHandler): void {
if (!this.events.has(event)) {
this.events.set(event, []);
}
this.events.get(event)!.push(handler);
}
emit(event: string, ...args: any[]): void {
const handlers = this.events.get(event);
if (handlers) {
handlers.forEach((handler) => handler(...args));
}
}
off(event: string, handler: EventHandler): void {
const handlers = this.events.get(event);
if (handlers) {
const index = handlers.indexOf(handler);
if (index > -1) {
handlers.splice(index, 1);
}
}
}
once(event: string, handler: EventHandler): void {
const onceHandler = (...args: any[]) => {
handler(...args);
this.off(event, onceHandler);
};
this.on(event, onceHandler);
}
}