UNPKG

nuxt-utm

Version:

A Nuxt 3/4 module for tracking UTM parameters.

42 lines (39 loc) 1.23 kB
import { defineNuxtModule, createResolver, addPlugin, addImports, addTypeTemplate } from '@nuxt/kit'; const module$1 = defineNuxtModule({ meta: { name: "utm", configKey: "utm", compatibility: { nuxt: "^3.0.0 || ^4.0.0" } }, defaults: { trackingEnabled: true }, setup(options, nuxt) { const resolver = createResolver(import.meta.url); nuxt.options.runtimeConfig.public.utm = { trackingEnabled: options.trackingEnabled ?? true }; addPlugin(resolver.resolve("./runtime/plugin")); addImports({ name: "useNuxtUTM", from: resolver.resolve("runtime/composables") }); addTypeTemplate({ filename: "types/utm-hooks.d.ts", getContents: () => [ 'import type { DataObject, BeforeTrackContext } from "nuxt-utm"', "", 'declare module "#app" {', " interface RuntimeNuxtHooks {", ' "utm:before-track": (context: BeforeTrackContext) => void | Promise<void>', ' "utm:before-persist": (data: DataObject) => void | Promise<void>', ' "utm:tracked": (data: DataObject) => void | Promise<void>', " }", "}" ].join("\n") }); } }); export { module$1 as default };