UNPKG

vuestic-ui

Version:
1 lines 2 kB
{"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;"}