nuxt-applicationinsights
Version:
Application insights integration for Nuxt
52 lines (49 loc) • 1.45 kB
JavaScript
import { defineNuxtModule, createResolver, addPlugin, addServerPlugin } from '@nuxt/kit';
import { resolvePath } from 'mlly';
import { defu } from 'defu';
const module = defineNuxtModule({
meta: {
name: "nuxt-applicationinsights",
configKey: "applicationinsights",
compatibility: {
nuxt: ">=3",
bridge: false
}
},
// Default configuration options of the Nuxt module
defaults: {
serverEnabled: true,
clientEnabled: true
},
async setup(options, nuxt) {
const resolver = createResolver(import.meta.url);
if (options.connectionString) {
nuxt.options.runtimeConfig = defu(nuxt.options.runtimeConfig, {
public: {
applicationinsights: {
connectionString: options.connectionString
}
},
applicationinsights: {
connectionString: options.connectionString
}
});
}
if (options.serverEnabled) {
nuxt.options.nitro.modules ||= [];
nuxt.options.nitro.modules.push(await resolvePath("nitro-applicationinsights"));
addPlugin({
src: resolver.resolve("./runtime/app/plugin.server"),
mode: "server"
});
addServerPlugin(resolver.resolve("./runtime/server/plugins/setup"));
}
if (options.clientEnabled) {
addPlugin({
src: resolver.resolve("./runtime/app/plugin.client"),
mode: "client"
});
}
}
});
export { module as default };