UNPKG

@cloudcome/utils-vue

Version:
37 lines (36 loc) 908 B
import { Emitter } from "@cloudcome/utils-core/emitter"; import { onMounted, onUnmounted, onBeforeMount, onBeforeUnmount } from "vue"; function createEventHook(options = {}) { const emitter = options.emitter || new Emitter(); const on = (event, listener) => { emitter.on(event, listener); }; const off = (event, listener) => { emitter.off(event, listener); }; const emit = (event, ...payloads) => { emitter.emit(event, ...payloads); }; const useEvent = (event, fn) => { if (options.stage === "mounted") { onMounted(() => { on(event, fn); }); onUnmounted(() => { off(event, fn); }); } else { onBeforeMount(() => { on(event, fn); }); onBeforeUnmount(() => { off(event, fn); }); } }; return { on, off, emit, useEvent }; } export { createEventHook }; //# sourceMappingURL=event.mjs.map