{"version":3,"file":"eventEmitter.mjs","names":["EventEmitter","constructor","_defineProperty","Map","on","eventName","fn","handlers","events","get","Set","add","set","off","delete","emit","args","handler","call","subscribe"],"sources":["../../src/utils/eventEmitter.ts"],"sourcesContent":["type Events = Record<string, (...args: any[]) => void>;\ntype Cleanup = () => void;\n\nexport default class EventEmitter<E extends Events, K extends keyof E = keyof E, H extends E[K] = E[K]> {\n  private events = new Map<K, Set<H>>();\n\n  public on(eventName: K, fn: H): Cleanup {\n    const handlers = this.events.get(eventName) ?? new Set<H>();\n\n    handlers.add(fn);\n\n    this.events.set(eventName, handlers);\n\n    return () => {\n      this.off(eventName, fn);\n    };\n  }\n\n  public off(eventName: K, fn: H): void {\n    this.events.get(eventName)?.delete(fn);\n  }\n\n  public emit(eventName: K, ...args: Parameters<H>) {\n    const handlers = this.events.get(eventName);\n\n    if (handlers) {\n      for (const handler of handlers) {\n        handler.call(null, ...args);\n      }\n    }\n  }\n\n  /**\n   * @deprecated. Fallback to the `on` method for backward compatibility.\n   */\n  public subscribe(eventName: K, fn: H): Cleanup {\n    return this.on(eventName, fn);\n  }\n}\n"],"mappings":";AAGA,eAAe,MAAMA,YAAY,CAAuE;EAAAC,YAAA;IAAAC,eAAA,iBACrF,IAAIC,GAAG,CAAY,CAAC;EAAA;EAE9BC,EAAEA,CAACC,SAAY,EAAEC,EAAK,EAAW;IACtC,MAAMC,QAAQ,GAAG,IAAI,CAACC,MAAM,CAACC,GAAG,CAACJ,SAAS,CAAC,IAAI,IAAIK,GAAG,CAAI,CAAC;IAE3DH,QAAQ,CAACI,GAAG,CAACL,EAAE,CAAC;IAEhB,IAAI,CAACE,MAAM,CAACI,GAAG,CAACP,SAAS,EAAEE,QAAQ,CAAC;IAEpC,OAAO,MAAM;MACX,IAAI,CAACM,GAAG,CAACR,SAAS,EAAEC,EAAE,CAAC;IACzB,CAAC;EACH;EAEOO,GAAGA,CAACR,SAAY,EAAEC,EAAK,EAAQ;IACpC,IAAI,CAACE,MAAM,CAACC,GAAG,CAACJ,SAAS,CAAC,EAAES,MAAM,CAACR,EAAE,CAAC;EACxC;EAEOS,IAAIA,CAACV,SAAY,EAAE,GAAGW,IAAmB,EAAE;IAChD,MAAMT,QAAQ,GAAG,IAAI,CAACC,MAAM,CAACC,GAAG,CAACJ,SAAS,CAAC;IAE3C,IAAIE,QAAQ,EAAE;MACZ,KAAK,MAAMU,OAAO,IAAIV,QAAQ,EAAE;QAC9BU,OAAO,CAACC,IAAI,CAAC,IAAI,EAAE,GAAGF,IAAI,CAAC;MAC7B;IACF;EACF;;EAEA;AACF;AACA;EACSG,SAASA,CAACd,SAAY,EAAEC,EAAK,EAAW;IAC7C,OAAO,IAAI,CAACF,EAAE,CAACC,SAAS,EAAEC,EAAE,CAAC;EAC/B;AACF","ignoreList":[]}