nuxt-mitter
Version:
Nuxt-Mitter - Nuxt module for mitt library
25 lines (24 loc) • 665 B
JavaScript
import { useNuxtApp } from "#app";
import { onMounted, onUnmounted } from "#imports";
export const useMitter = () => {
const { $mitter } = useNuxtApp();
const mitter = $mitter;
const emit = (event, payload) => {
mitter.emit(event, payload);
};
const on = (event, handler) => {
mitter.on(event, handler);
};
const off = (event, handler) => {
mitter.off(event, handler);
};
const listen = (event, handler) => {
onMounted(() => on(event, handler));
onUnmounted(() => off(event, handler));
};
const clearAll = () => {
mitter.all.clear();
};
const all = mitter.all;
return { emit, on, off, listen, clearAll, all };
};