{"version":3,"sources":["../src/eventEmitter.ts"],"sourcesContent":["export class EventEmitter {\n    private listeners: { [eventName: string]: Array<(...args: any[]) => void> } = {};\n\n    on(eventName: string, listener: (...args: any[]) => void): () => void {\n        if (!this.listeners[eventName]) {\n            this.listeners[eventName] = [];\n        }\n        this.listeners[eventName].push(listener);\n        return () => {\n            this.listeners[eventName] = this.listeners[eventName].filter(l => l !== listener);\n        };\n    }\n\n    emit(eventName: string, ...args: any[]): void {\n        if (this.listeners[eventName]) {\n            this.listeners[eventName].forEach(listener => listener(...args));\n        }\n    }\n\n    off(eventName: string, listener: (...args: any[]) => void): void {\n        if (this.listeners[eventName]) {\n            this.listeners[eventName] = this.listeners[eventName].filter(l => l !== listener);\n        }\n    }\n\n    getListeners(eventName: string): Array<(...args: any[]) => void> {\n        return this.listeners[eventName] ? [...this.listeners[eventName]] : [];\n    }\n}"],"mappings":";AAAO,IAAM,eAAN,MAAmB;AAAA,EAAnB;AACH,SAAQ,YAAsE,CAAC;AAAA;AAAA,EAE/E,GAAG,WAAmB,UAAgD;AAClE,QAAI,CAAC,KAAK,UAAU,SAAS,GAAG;AAC5B,WAAK,UAAU,SAAS,IAAI,CAAC;AAAA,IACjC;AACA,SAAK,UAAU,SAAS,EAAE,KAAK,QAAQ;AACvC,WAAO,MAAM;AACT,WAAK,UAAU,SAAS,IAAI,KAAK,UAAU,SAAS,EAAE,OAAO,OAAK,MAAM,QAAQ;AAAA,IACpF;AAAA,EACJ;AAAA,EAEA,KAAK,cAAsB,MAAmB;AAC1C,QAAI,KAAK,UAAU,SAAS,GAAG;AAC3B,WAAK,UAAU,SAAS,EAAE,QAAQ,cAAY,SAAS,GAAG,IAAI,CAAC;AAAA,IACnE;AAAA,EACJ;AAAA,EAEA,IAAI,WAAmB,UAA0C;AAC7D,QAAI,KAAK,UAAU,SAAS,GAAG;AAC3B,WAAK,UAAU,SAAS,IAAI,KAAK,UAAU,SAAS,EAAE,OAAO,OAAK,MAAM,QAAQ;AAAA,IACpF;AAAA,EACJ;AAAA,EAEA,aAAa,WAAoD;AAC7D,WAAO,KAAK,UAAU,SAAS,IAAI,CAAC,GAAG,KAAK,UAAU,SAAS,CAAC,IAAI,CAAC;AAAA,EACzE;AACJ;","names":[]}