diff --git a/src/module.ts b/src/module.ts index a7df5f40..d24f6703 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1,5 +1,6 @@ import { defu } from 'defu' import { createResolver, defineNuxtModule, addComponentsDir, addImportsDir, addVitePlugin, addPlugin, installModule, hasNuxtModule } from '@nuxt/kit' +import type { NuxtOptions } from '@nuxt/schema' import { addTemplates } from './templates' import icons from './theme/icons' @@ -79,35 +80,21 @@ export default defineNuxtModule({ nuxt.options.postcss.plugins['@tailwindcss/postcss'] = {} } - if (options.fonts) { - if (!hasNuxtModule('@nuxt/fonts')) { - await installModule('@nuxt/fonts', { experimental: { processCSSVariables: true } }) + async function registerModule(name: string, options: Record) { + if (!hasNuxtModule(name)) { + await installModule(name, options) } else { - nuxt.options.fonts = defu(nuxt.options.fonts, { experimental: { processCSSVariables: true } }) + (nuxt.options as any)[name] = defu((nuxt.options as any)[name], options) } } - if (!hasNuxtModule('@nuxt/icon')) { - await installModule('@nuxt/icon', { cssLayer: 'components' }) - } else { - nuxt.options.icon = defu(nuxt.options.icon, { cssLayer: 'components' }) - } + await registerModule('@nuxt/icon', { cssLayer: 'components' }) + await registerModule('@nuxt/fonts', { experimental: { processCSSVariables: true } }) + await registerModule('@nuxtjs/color-mode', { classSuffix: '', disableTransition: true }) - if (!hasNuxtModule('@nuxtjs/color-mode')) { - await installModule('@nuxtjs/color-mode', { classSuffix: '' }) - } else { - nuxt.options.colorMode = defu(nuxt.options.colorMode, { classSuffix: '' }) - } - - addPlugin({ - src: resolve('./runtime/plugins/colors') - }) - addPlugin({ - src: resolve('./runtime/plugins/modal') - }) - addPlugin({ - src: resolve('./runtime/plugins/slideover') - }) + addPlugin({ src: resolve('./runtime/plugins/colors') }) + addPlugin({ src: resolve('./runtime/plugins/modal') }) + addPlugin({ src: resolve('./runtime/plugins/slideover') }) addComponentsDir({ path: resolve('./runtime/components'),