diff --git a/src/module.ts b/src/module.ts index 26365d9e..788c67ee 100644 --- a/src/module.ts +++ b/src/module.ts @@ -125,7 +125,7 @@ export default defineNuxtModule({ addImportsDir(resolve('./runtime/composables')) - addTemplates(options, nuxt) + addTemplates(options, nuxt, resolve) if (nuxt.options.dev && nuxt.options.devtools.enabled && options.devtools?.enabled) { const templates = buildTemplates(options) diff --git a/src/runtime/types/app.config.d.ts b/src/runtime/types/app.config.d.ts new file mode 100644 index 00000000..aa2b8ced --- /dev/null +++ b/src/runtime/types/app.config.d.ts @@ -0,0 +1,6 @@ +declare module '#build/app.config' { + import type { AppConfig } from '@nuxt/schema' + + const _default: AppConfig + export default _default +} diff --git a/src/templates.ts b/src/templates.ts index cd4d1f9c..cf247f98 100644 --- a/src/templates.ts +++ b/src/templates.ts @@ -2,6 +2,7 @@ import { fileURLToPath } from 'node:url' import { kebabCase } from 'scule' import { addTemplate, addTypeTemplate } from '@nuxt/kit' import type { Nuxt, NuxtTemplate, NuxtTypeTemplate } from '@nuxt/schema' +import type { Resolver } from '@nuxt/kit' import type { ModuleOptions } from './module' import * as theme from './theme' @@ -86,17 +87,6 @@ export {} ` }) - templates.push({ - filename: 'types/ui.app.config.d.ts', - getContents: () => `declare module '#build/app.config' { - import type { AppConfig } from '@nuxt/schema' - - const _default: AppConfig - export default _default -} -` - }) - templates.push({ filename: 'ui-image-component.ts', write: true, @@ -110,7 +100,7 @@ export {} return templates } -export function addTemplates(options: ModuleOptions, nuxt: Nuxt) { +export function addTemplates(options: ModuleOptions, nuxt: Nuxt, resolve: Resolver['resolve']) { const templates = getTemplates(options, nuxt.options.appConfig.ui) for (const template of templates) { if (template.filename!.endsWith('.d.ts')) { @@ -119,4 +109,8 @@ export function addTemplates(options: ModuleOptions, nuxt: Nuxt) { addTemplate(template) } } + + nuxt.hook('prepare:types', ({ references }) => { + references.push({ path: resolve('./runtime/types/app.config.d.ts') }) + }) }