vuestic-ui
Version:
Vue 3 UI Framework
31 lines (30 loc) • 914 B
JavaScript
const getEvent = (event) => typeof event === "object" ? event.listen : event;
const getEmit = (event) => typeof event === "object" ? event.emit : event;
const useEmitProxy = (events) => {
const createEmits = () => events.map(getEmit);
const eventToListenerName = (event) => {
const eventName = event.charAt(0).toUpperCase() + event.slice(1);
return `on${eventName}`;
};
const createListeners = (emit) => {
return events.reduce((acc, key) => ({
...acc,
[eventToListenerName(getEvent(key))]: (...args) => emit(getEmit(key), ...args)
}), {});
};
const createVOnListeners = (emit) => {
return events.reduce((acc, key) => ({
...acc,
[getEvent(key)]: (...args) => emit(getEmit(key), ...args)
}), {});
};
return {
createListeners,
createVOnListeners,
createEmits
};
};
export {
useEmitProxy as u
};
//# sourceMappingURL=useEmitProxy.mjs.map