@ambitiondev/nuxt-cookiebot
Version:
Implementation for Cookiebot in Nuxt applications
47 lines (43 loc) • 1.28 kB
JavaScript
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 };