diff --git a/src/module.ts b/src/module.ts index dd7a2ccc..554e4316 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2,7 +2,7 @@ import { defineNuxtModule, useLogger, createResolver, - addTemplate, + addTypeTemplate, addPlugin, addServerPlugin, addImports, @@ -197,16 +197,13 @@ export default defineNuxtModule({ nitroConfig.alias['#auth'] = resolve('./runtime/server/services') }) - addTemplate({ + addTypeTemplate({ filename: 'types/auth.d.ts', getContents: () => [ '// AUTO-GENERATED BY @sidebase/nuxt-auth', "declare module '#auth' {", - ` import RuntimeServerServices from '${resolve('./runtime/server/services')}'`, - ' const getServerSession: RuntimeServerServices.getServerSession', - ' const getToken: RuntimeServerServices.getToken', - ' const NuxtAuthHandler: RuntimeServerServices.NuxtAuthHandler', + ` const { getServerSession, getToken, NuxtAuthHandler }: typeof import('${resolve('./runtime/server/services')}')`, ...(options.provider.type === 'local' ? [genInterface( 'SessionData', @@ -215,23 +212,25 @@ export default defineNuxtModule({ : [] ), '}', - "declare module 'nitropack' {", - ` import { RouteOptions } from '${resolve('./runtime/types.ts')}'`, - ' interface NitroRouteRules {', - ' auth?: RouteOptions', - ' }', - ' interface NitroRouteConfig {', - ' auth?: RouteOptions', - ' }', - '}', '' ].join('\n') }) - nuxt.hook('prepare:types', (options) => { - options.references.push({ - path: resolve(nuxt.options.buildDir, 'types/auth.d.ts') - }) + addTypeTemplate({ + filename: 'types/auth-misc.d.ts', + getContents: () => [ + '// AUTO-GENERATED BY @sidebase/nuxt-auth', + `import { RouteOptions } from '${resolve('./runtime/types.ts')}'`, + "declare module 'nitropack' {", + ' interface NitroRouteRules {', + ' auth?: RouteOptions', + ' }', + ' interface NitroRouteConfig {', + ' auth?: RouteOptions', + ' }', + '}', + '' + ].join('\n') }) // 6. Register middleware for autocomplete in definePageMeta