Consent API (#1)

# Changelog
- fix typo in supressDnt to suppressDnt setting,
- expose recordConsent and revokeConsent API calls,
- expose Wide Angle API as `useWideAngle()` and remove obsolete `useWaaEvent`

Reviewed-on: https://cloud.inputobjects.eu/forge/forge/wideangle/wideangle-nuxt/pulls/1
Co-authored-by: Jarek Rozanski <jrozanski@inputobjects.eu>
Co-committed-by: Jarek Rozanski <jrozanski@inputobjects.eu>
This commit is contained in:
Jarek Rozanski 2025-01-29 20:28:22 +00:00 committed by Jarek Rozanski
parent 787a1fd57f
commit f621c33de9
13 changed files with 191 additions and 116 deletions

View file

@ -1,6 +1,5 @@
import { defineNuxtModule, addPlugin, addImports, createResolver, useLogger } from '@nuxt/kit'
import { defineNuxtModule, addPlugin, addImportsDir, createResolver, useLogger } from '@nuxt/kit'
import { defu } from 'defu'
import { fileURLToPath } from 'url'
const logger = useLogger('nuxt:wideangle')
@ -8,10 +7,11 @@ export interface ModuleOptions {
siteId?: string
domain: string
fingerprint: boolean
supressDnt: boolean
suppressDnt: boolean
includeParams: string[]
excludePaths: string[]
ignoreHash: boolean
consentMarker: string
}
export default defineNuxtModule<ModuleOptions>({
@ -19,39 +19,32 @@ export default defineNuxtModule<ModuleOptions>({
name: 'wideangle',
configKey: 'wideangle',
compatibility: {
nuxt: '>=3'
}
nuxt: '>=3',
},
},
defaults: {
domain: "stats.wideangle.co",
domain: 'stats.wideangle.co',
fingerprint: false,
supressDnt: false,
suppressDnt: false,
includeParams: [],
excludePaths: [],
ignoreHash: false
ignoreHash: false,
consentMarker: undefined,
},
setup (options, nuxt) {
const runtimeDir = fileURLToPath(new URL('./runtime', import.meta.url))
setup(options, nuxt) {
const resolver = createResolver(import.meta.url)
nuxt.options.runtimeConfig.public.wideangle = defu(
nuxt.options.runtimeConfig.public.wideangle,
options,
)
nuxt.options.build.transpile.push(runtimeDir);
const resolver = createResolver(import.meta.url);
nuxt.options.build.transpile.push(resolver.resolve('./runtime'))
logger.info('Adding Wide Angle Analytics runtime plugin');
logger.info('Adding Wide Angle Analytics (useWideAngle) import')
addImportsDir(resolver.resolve('./runtime/composables'))
addImports({
name: "useWaaEvent",
as: "useWaaEvent",
from: resolver.resolve('./runtime/composables/useWaaEvent')
});
logger.info('Adding Wide Angle Analytics runtime plugin')
addPlugin(resolver.resolve('./runtime/plugin.client'))
addPlugin({
src: resolver.resolve('./runtime/plugin.client')
});
}
},
})