{"version":3,"sources":["../../src/eventbus/index.ts"],"sourcesContent":["export type Handler = (evt: unknown) => void;\n\nexport interface EventBusOptions {\n    on(type: string, handler: Handler): void;\n    off(type: string, handler: Handler): void;\n    emit(type: string, evt?: unknown): void;\n    clear(): void;\n}\n\nexport function EventBus(): EventBusOptions {\n    const allHandlers = new Map<string, Handler[]>();\n\n    return {\n        on(type: string, handler: Handler) {\n            let handlers = allHandlers.get(type);\n\n            if (!handlers) handlers = [handler];\n            else handlers.push(handler);\n\n            allHandlers.set(type, handlers);\n\n            return this;\n        },\n        off(type: string, handler: Handler) {\n            const handlers = allHandlers.get(type);\n\n            if (handlers) {\n                handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n            }\n\n            return this;\n        },\n        emit(type: string, evt?: unknown) {\n            const handlers = allHandlers.get(type);\n\n            if (handlers) {\n                handlers.forEach((handler) => {\n                    handler(evt);\n                });\n            }\n        },\n        clear() {\n            allHandlers.clear();\n        }\n    };\n}\n"],"mappings":"AASO,SAASA,GAA4B,CACxC,IAAMC,EAAc,IAAI,IAExB,MAAO,CACH,GAAGC,EAAcC,EAAkB,CAC/B,IAAIC,EAAWH,EAAY,IAAIC,CAAI,EAEnC,OAAKE,EACAA,EAAS,KAAKD,CAAO,EADXC,EAAW,CAACD,CAAO,EAGlCF,EAAY,IAAIC,EAAME,CAAQ,EAEvB,IACX,EACA,IAAIF,EAAcC,EAAkB,CAChC,IAAMC,EAAWH,EAAY,IAAIC,CAAI,EAErC,OAAIE,GACAA,EAAS,OAAOA,EAAS,QAAQD,CAAO,IAAM,EAAG,CAAC,EAG/C,IACX,EACA,KAAKD,EAAcG,EAAe,CAC9B,IAAMD,EAAWH,EAAY,IAAIC,CAAI,EAEjCE,GACAA,EAAS,QAASD,GAAY,CAC1BA,EAAQE,CAAG,CACf,CAAC,CAET,EACA,OAAQ,CACJJ,EAAY,MAAM,CACtB,CACJ,CACJ","names":["EventBus","allHandlers","type","handler","handlers","evt"]}