{"version":3,"file":"event-emitter.mjs","names":[],"sources":["../src/event-emitter.ts"],"sourcesContent":["class EventEmitter {\n  // deno-lint-ignore no-explicit-any\n  private listeners = new Map<string, ((...args: any[]) => void)[]>();\n\n  // This is used to store temporary listeners that are only called once\n  // deno-lint-ignore no-explicit-any\n  private tempListeners = new Map<string, ((...args: any[]) => void)[]>();\n\n  // deno-lint-ignore no-explicit-any\n  public on(eventName: string, listener: (...args: any[]) => void) {\n    if (!this.listeners.has(eventName)) {\n      this.listeners.set(eventName, []);\n    }\n    this.listeners.get(eventName)?.push(listener);\n  }\n\n  // deno-lint-ignore no-explicit-any\n  public once(eventName: string, listener: (...args: any[]) => void) {\n    if (!this.tempListeners.has(eventName)) {\n      this.tempListeners.set(eventName, []);\n    }\n    this.tempListeners.get(eventName)?.push(listener);\n  }\n\n  // deno-lint-ignore no-explicit-any\n  public off(eventName: string, listener: (...args: any[]) => void) {\n    let list = this.listeners.get(eventName);\n    if (list) {\n      this.listeners.set(\n        eventName,\n        list.filter((l) => l !== listener),\n      );\n    }\n    list = this.tempListeners.get(eventName);\n    if (list) {\n      this.tempListeners.set(\n        eventName,\n        list.filter((l) => l !== listener),\n      );\n    }\n  }\n\n  // deno-lint-ignore no-explicit-any\n  public emit(eventName: string, ...args: any[]) {\n    (this.listeners.get(eventName) ?? []).forEach((listener) => {\n      listener(...args);\n    });\n    (this.tempListeners.get(eventName) ?? []).forEach((listener) => {\n      listener(...args);\n    });\n    this.tempListeners.delete(eventName);\n  }\n\n  public removeAllListeners() {\n    this.listeners.clear();\n    this.tempListeners.clear();\n  }\n}\n\nexport default EventEmitter;\n"],"mappings":";AAAA,IAAM,eAAN,MAAmB;CAEjB,4BAAoB,IAAI,KAA2C;CAInE,gCAAwB,IAAI,KAA2C;CAGvE,GAAU,WAAmB,UAAoC;AAC/D,MAAI,CAAC,KAAK,UAAU,IAAI,UAAU,CAChC,MAAK,UAAU,IAAI,WAAW,EAAE,CAAC;AAEnC,OAAK,UAAU,IAAI,UAAU,EAAE,KAAK,SAAS;;CAI/C,KAAY,WAAmB,UAAoC;AACjE,MAAI,CAAC,KAAK,cAAc,IAAI,UAAU,CACpC,MAAK,cAAc,IAAI,WAAW,EAAE,CAAC;AAEvC,OAAK,cAAc,IAAI,UAAU,EAAE,KAAK,SAAS;;CAInD,IAAW,WAAmB,UAAoC;EAChE,IAAI,OAAO,KAAK,UAAU,IAAI,UAAU;AACxC,MAAI,KACF,MAAK,UAAU,IACb,WACA,KAAK,QAAQ,MAAM,MAAM,SAAS,CACnC;AAEH,SAAO,KAAK,cAAc,IAAI,UAAU;AACxC,MAAI,KACF,MAAK,cAAc,IACjB,WACA,KAAK,QAAQ,MAAM,MAAM,SAAS,CACnC;;CAKL,KAAY,WAAmB,GAAG,MAAa;AAC7C,GAAC,KAAK,UAAU,IAAI,UAAU,IAAI,EAAE,EAAE,SAAS,aAAa;AAC1D,YAAS,GAAG,KAAK;IACjB;AACF,GAAC,KAAK,cAAc,IAAI,UAAU,IAAI,EAAE,EAAE,SAAS,aAAa;AAC9D,YAAS,GAAG,KAAK;IACjB;AACF,OAAK,cAAc,OAAO,UAAU;;CAGtC,qBAA4B;AAC1B,OAAK,UAAU,OAAO;AACtB,OAAK,cAAc,OAAO"}