{"version":3,"file":"useEmitProxy.mjs","sources":["../../../../src/composables/useEmitProxy.ts"],"sourcesContent":["type Events = string | { listen: string, emit: string }\n\nconst getEvent = (event: Events) => typeof event === 'object' ? event.listen : event\nconst getEmit = (event: Events) => typeof event === 'object' ? event.emit : event\n\nexport const useEmitProxy = (events: Events[]) => {\n  const createEmits = () => events.map(getEmit)\n\n  const eventToListenerName = (event: string) => {\n    const eventName = event.charAt(0).toUpperCase() + event.slice(1)\n    return `on${eventName}`\n  }\n\n  const createListeners = (emit: (event: string, ...args: any[]) => void) => {\n    return events.reduce((acc, key) => ({\n      ...acc,\n      [eventToListenerName(getEvent(key))]: (...args: any[]) => emit(getEmit(key), ...args),\n    }), {} as Record<string, any>)\n  }\n\n  const createVOnListeners = (emit: (event: string, ...args: any[]) => void) => {\n    return events.reduce((acc, key) => ({\n      ...acc,\n      [getEvent(key)]: (...args: any[]) => emit(getEmit(key), ...args),\n    }), {} as Record<string, any>)\n  }\n\n  return {\n    createListeners,\n    createVOnListeners,\n    createEmits,\n  }\n}\n"],"names":[],"mappings":"AAEA,MAAM,WAAW,CAAC,UAAkB,OAAO,UAAU,WAAW,MAAM,SAAS;AAC/E,MAAM,UAAU,CAAC,UAAkB,OAAO,UAAU,WAAW,MAAM,OAAO;AAE/D,MAAA,eAAe,CAAC,WAAqB;AAChD,QAAM,cAAc,MAAM,OAAO,IAAI,OAAO;AAEtC,QAAA,sBAAsB,CAAC,UAAkB;AACvC,UAAA,YAAY,MAAM,OAAO,CAAC,EAAE,YAAY,IAAI,MAAM,MAAM,CAAC;AAC/D,WAAO,KAAK,SAAS;AAAA,EAAA;AAGjB,QAAA,kBAAkB,CAAC,SAAkD;AACzE,WAAO,OAAO,OAAO,CAAC,KAAK,SAAS;AAAA,MAClC,GAAG;AAAA,MACH,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,SAAgB,KAAK,QAAQ,GAAG,GAAG,GAAG,IAAI;AAAA,IAAA,IAClF,CAAyB,CAAA;AAAA,EAAA;AAGzB,QAAA,qBAAqB,CAAC,SAAkD;AAC5E,WAAO,OAAO,OAAO,CAAC,KAAK,SAAS;AAAA,MAClC,GAAG;AAAA,MACH,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,SAAgB,KAAK,QAAQ,GAAG,GAAG,GAAG,IAAI;AAAA,IAAA,IAC7D,CAAyB,CAAA;AAAA,EAAA;AAGxB,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}