1
- import {
2
- defineNuxtModule ,
3
- addPlugin ,
4
- createResolver ,
5
- addImportsSources ,
6
- addRouteMiddleware ,
7
- addServerHandler ,
8
- addTemplate ,
9
- } from '@nuxt/kit'
1
+ import type { PublicRuntimeConfig } from 'nuxt/schema'
2
+ import { defineNuxtModule , addPlugin , createResolver , addImportsSources , addRouteMiddleware , addServerHandler , addTemplate } from '@nuxt/kit'
3
+ import type { CookieSameSite , RegisterOptions } from '@teamhanko/hanko-elements'
10
4
import { defu } from 'defu'
11
5
12
6
export interface ModuleOptions {
@@ -17,12 +11,24 @@ export interface ModuleOptions {
17
11
registerComponents ?: boolean
18
12
augmentContext ?: boolean
19
13
cookieName ?: string
14
+ cookieSameSite ?: CookieSameSite
15
+ cookieDomain ?: string
16
+ storageKey ?: string
20
17
redirects ?: {
21
18
login ?: string
22
19
home ?: string
23
20
success ?: string
24
21
followRedirect ?: boolean
25
22
}
23
+ components ?: {
24
+ shadow ?: RegisterOptions [ 'shadow' ]
25
+ injectStyles ?: RegisterOptions [ 'injectStyles' ]
26
+ enablePasskeys ?: RegisterOptions [ 'enablePasskeys' ]
27
+ hidePasskeyButtonOnLogin ?: RegisterOptions [ 'hidePasskeyButtonOnLogin' ]
28
+ translations ?: RegisterOptions [ 'translations' ]
29
+ translationsLocation ?: RegisterOptions [ 'translationsLocation' ]
30
+ fallbackLanguage ?: RegisterOptions [ 'fallbackLanguage' ]
31
+ }
26
32
}
27
33
28
34
export default defineNuxtModule < ModuleOptions > ( {
@@ -51,10 +57,13 @@ export default defineNuxtModule<ModuleOptions>({
51
57
52
58
nuxt . options . runtimeConfig . public = defu ( nuxt . options . runtimeConfig . public , {
53
59
hanko : {
54
- apiURL : options . apiURL ,
55
- cookieName : options . cookieName ,
56
- } ,
57
- } )
60
+ apiURL : options . apiURL ! ,
61
+ cookieName : options . cookieName ! ,
62
+ cookieSameSite : options . cookieSameSite || undefined ,
63
+ cookieDomain : options . cookieDomain || undefined ,
64
+ components : options . components || { } ,
65
+ } satisfies PublicRuntimeConfig [ 'hanko' ] ,
66
+ } ) as PublicRuntimeConfig
58
67
59
68
nuxt . options . appConfig = defu ( nuxt . options . appConfig , {
60
69
hanko : {
@@ -128,3 +137,16 @@ export default defineNuxtModule<ModuleOptions>({
128
137
} )
129
138
} ,
130
139
} )
140
+
141
+ declare module '@nuxt/schema' {
142
+ interface PublicRuntimeConfig {
143
+ hanko : {
144
+ apiURL : NonNullable < ModuleOptions [ 'apiURL' ] >
145
+ cookieName : NonNullable < ModuleOptions [ 'cookieName' ] >
146
+ cookieSameSite ?: ModuleOptions [ 'cookieSameSite' ]
147
+ cookieDomain ?: ModuleOptions [ 'cookieDomain' ]
148
+ storageKey ?: ModuleOptions [ 'storageKey' ]
149
+ components : ModuleOptions [ 'components' ]
150
+ }
151
+ }
152
+ }
0 commit comments