// Hook function used by event listener function hookLogEvent(binding) { const modifiers = Object.keys(binding.modifiers) if (modifiers.length !== 1) { throw new Error( "Amplitude directive takes only one modifier which is the event name.", ) } const eventName = modifiers[0] useAmplitude().logEvent(eventName, binding.value) } export default defineNuxtPlugin((nuxtApp) => { // Doing something with nuxtApp const registeredListeners = {} nuxtApp.vueApp.directive("track", { beforeMount(el, binding) { registeredListeners[el] = () => { hookLogEvent(binding) } el.addEventListener("click", registeredListeners[el]) }, }) })