wideangle-nuxt/src/module.ts

51 lines
1.3 KiB
TypeScript
Raw Normal View History

import { defineNuxtModule, addPlugin, addImportsDir, createResolver, useLogger } from '@nuxt/kit'
2023-09-13 14:19:43 +00:00
import { defu } from 'defu'
2023-05-14 15:25:44 +00:00
2023-05-18 12:33:46 +00:00
const logger = useLogger('nuxt:wideangle')
export interface ModuleOptions {
siteId?: string
2023-09-13 14:19:43 +00:00
domain: string
fingerprint: boolean
suppressDnt: boolean
2023-09-13 14:19:43 +00:00
includeParams: string[]
excludePaths: string[]
ignoreHash: boolean
consentMarker: string
2023-05-18 12:33:46 +00:00
}
2023-05-14 15:25:44 +00:00
export default defineNuxtModule<ModuleOptions>({
meta: {
name: 'wideangle',
2023-05-18 12:33:46 +00:00
configKey: 'wideangle',
compatibility: {
nuxt: '>=3',
},
2023-05-18 12:33:46 +00:00
},
defaults: {
domain: 'stats.wideangle.co',
2023-05-18 12:33:46 +00:00
fingerprint: false,
suppressDnt: false,
2023-05-18 12:33:46 +00:00
includeParams: [],
excludePaths: [],
ignoreHash: false,
consentMarker: undefined,
2023-05-14 15:25:44 +00:00
},
setup(options, nuxt) {
const resolver = createResolver(import.meta.url)
2023-09-13 14:19:43 +00:00
nuxt.options.runtimeConfig.public.wideangle = defu(
nuxt.options.runtimeConfig.public.wideangle,
options,
)
nuxt.options.build.transpile.push(resolver.resolve('./runtime'))
2023-09-13 14:28:30 +00:00
logger.info('Adding Wide Angle Analytics (useWideAngle) import')
addImportsDir(resolver.resolve('./runtime/composables'))
2023-05-18 12:33:46 +00:00
logger.info('Adding Wide Angle Analytics runtime plugin')
addPlugin(resolver.resolve('./runtime/plugin.client'))
2023-05-18 12:33:46 +00:00
},
2023-05-14 15:25:44 +00:00
})