UNPKG

@ambitiondev/nuxt-cookiebot

Version:

Implementation for Cookiebot in Nuxt applications

47 lines (43 loc) 1.28 kB
import { useLogger } from '@ambitiondev/cookiebot-common'; import { defineNuxtModule, createResolver, addTemplate, isNuxt2, addPlugin, addImports } from '@nuxt/kit'; const name = "@ambitiondev/nuxt-cookiebot"; const version = "3.2.3"; const module = defineNuxtModule({ meta: { name, version, configKey: "cookiebot", compatibility: { nuxt: "^3.0.0 || ^4.0.0" } }, // Default configuration options of the Nuxt module defaults: { autoConsentBanner: true, cookieBotId: "" }, async setup(options, nuxt) { const { error } = useLogger(); const { resolve } = createResolver(import.meta.url); const runtimeDir = await resolve("./runtime"); nuxt.options.alias["#cookiebot-options"] = addTemplate({ filename: "cookiebot-options.mjs", getContents: () => Object.entries(options).map( ([key, value]) => `export const ${key} = ${JSON.stringify(value, null, 2)} ` ).join("\n") }).dst; if (isNuxt2()) { return error("Nuxt 2 is not supported. Aborting..."); } addPlugin({ src: resolve(runtimeDir, "plugin") }); addImports({ name: "useCookiebot", as: "useCookiebot", from: resolve(runtimeDir, "composable") }); } }); export { module as default };