11import { defineNuxtModule , createResolver , addServerHandler , addComponent , addPlugin , addImportsDir , addRouteMiddleware , addServerImportsDir } from '@nuxt/kit'
22import { defu } from 'defu'
3- import type { RuntimeModuleOptions , ModuleOptions } from './types'
3+ import type { RuntimeModuleOptions , ModuleOptions , DatabaseConfig } from './types'
44
55export const defaultOptions : ModuleOptions = {
66 connector : {
@@ -61,20 +61,13 @@ export default defineNuxtModule<RuntimeModuleOptions>({
6161
6262 nuxt . options . runtimeConfig . nuxtUsers = {
6363 ...runtimeConfigOptions ,
64- apiBasePath : options . apiBasePath || defaultOptions . apiBasePath ,
65- passwordResetUrl : options . passwordResetUrl || defaultOptions . passwordResetUrl ,
66- tables : {
67- migrations : options . tables ?. migrations || defaultOptions . tables . migrations ,
68- users : options . tables ?. users || defaultOptions . tables . users ,
69- personalAccessTokens : options . tables ?. personalAccessTokens || defaultOptions . tables . personalAccessTokens ,
70- passwordResetTokens : options . tables ?. passwordResetTokens || defaultOptions . tables . passwordResetTokens ,
71- } ,
7264 auth : {
65+ ...runtimeConfigOptions . auth ,
7366 whitelist : ( ( ) => {
74- const combinedWhitelist = [ ...( defaultOptions . auth ?. whitelist || [ ] ) , ...( options . auth ?. whitelist || [ ] ) ]
67+ const combinedWhitelist = [ ...( defaultOptions . auth ?. whitelist || [ ] ) , ...( runtimeConfigOptions . auth ?. whitelist || [ ] ) ]
7568 // Auto-whitelist related endpoints if /register is whitelisted
7669 if ( combinedWhitelist . includes ( '/register' ) ) {
77- const apiBasePath = options . apiBasePath || defaultOptions . apiBasePath
70+ const apiBasePath = runtimeConfigOptions . apiBasePath || defaultOptions . apiBasePath
7871 const registrationEndpoints = [
7972 '/confirm-email' , // Page route for email confirmation
8073 `${ apiBasePath } /register` , // API endpoint for registration
@@ -89,10 +82,7 @@ export default defineNuxtModule<RuntimeModuleOptions>({
8982 }
9083 return combinedWhitelist
9184 } ) ( ) ,
92- tokenExpiration : options . auth ?. tokenExpiration || defaultOptions . auth . tokenExpiration ,
93- permissions : options . auth ?. permissions || defaultOptions . auth . permissions
9485 } ,
95- hardDelete : options . hardDelete ?? defaultOptions . hardDelete ,
9686 }
9787
9888 // Add public runtime config for client-side access
@@ -255,11 +245,12 @@ export default defineNuxtModule<RuntimeModuleOptions>({
255245 // Only set default database if not already configured by consumer
256246 if ( ! nitroConfig . database . default ) {
257247 // Use nuxt-users database configuration for Nitro's default database
258- const connectorOptions = { ...runtimeConfigOptions . connector . options }
248+ const finalConnectorConfig = nuxt . options . runtimeConfig . nuxtUsers as ModuleOptions
249+ const connectorOptions = { ...finalConnectorConfig . connector . options }
259250
260251 // Map nuxt-users connector format to Nitro database format
261252 let nitroConnector : 'better-sqlite3' | 'mysql2' | 'postgresql'
262- switch ( runtimeConfigOptions . connector . name ) {
253+ switch ( finalConnectorConfig . connector . name ) {
263254 case 'sqlite' :
264255 nitroConnector = 'better-sqlite3'
265256 break
0 commit comments