@@ -24,6 +24,11 @@ type ModuleOptions = {
24
24
*/
25
25
installIpxMiddleware ?: boolean
26
26
27
+ /**
28
+ * @default undefined
29
+ */
30
+ hasIpx ?: boolean
31
+
27
32
/**
28
33
* @default '/_ipx'
29
34
*/
@@ -38,28 +43,31 @@ export default defineNuxtModule<ModuleOptions>({
38
43
} ,
39
44
defaults : < ModuleOptions > {
40
45
installIpxMiddleware : false ,
46
+ hasIpx : undefined ,
41
47
ipxMiddlewarePrefix : '/_ipx'
42
48
} ,
43
49
setup ( options , nuxt ) {
44
50
const runtimeDir = fileURLToPath ( new URL ( './runtime' , import . meta. url ) )
45
51
const logger = consola . withScope ( 'nuxt:media-viewer' )
46
52
47
- const hasUserProvidedIPX =
48
- nuxt . options . serverHandlers . find ( handler => options . ipxMiddlewarePrefix && handler . route ?. startsWith ( options . ipxMiddlewarePrefix ) ) ||
49
- nuxt . options . devServerHandlers . find ( handler => options . ipxMiddlewarePrefix && handler . route ?. startsWith ( options . ipxMiddlewarePrefix ) )
53
+ nuxt . hook ( 'modules:done' , ( ) => {
54
+ const hasUserProvidedIPX =
55
+ nuxt . options . serverHandlers . find ( handler => options . ipxMiddlewarePrefix && handler . route ?. startsWith ( options . ipxMiddlewarePrefix ) ) ||
56
+ nuxt . options . devServerHandlers . find ( handler => options . ipxMiddlewarePrefix && handler . route ?. startsWith ( options . ipxMiddlewarePrefix ) )
50
57
51
- nuxt . options . runtimeConfig . mediaViewer = {
52
- publicRoot : resolve ( nuxt . options . rootDir , 'public' ) ,
53
- hasIpx : Boolean ( hasUserProvidedIPX || options . installIpxMiddleware ) ,
54
- ipxMiddlewarePrefix : options . ipxMiddlewarePrefix ?? ''
55
- }
58
+ nuxt . options . runtimeConfig . mediaViewer = {
59
+ publicRoot : resolve ( nuxt . options . rootDir , 'public' ) ,
60
+ hasIpx : options . hasIpx ?? Boolean ( hasUserProvidedIPX || options . installIpxMiddleware ) ,
61
+ ipxMiddlewarePrefix : options . ipxMiddlewarePrefix ?? ''
62
+ }
56
63
57
- if ( options . installIpxMiddleware && ! hasUserProvidedIPX ) {
58
- // @todo : check if ipx middleware is already installed
59
- addServerHandler ( {
60
- handler : resolve ( runtimeDir , 'server/middlewares/ipx' )
61
- } )
62
- }
64
+ if ( options . installIpxMiddleware && ! hasUserProvidedIPX ) {
65
+ // @todo : check if ipx middleware is already installed
66
+ addServerHandler ( {
67
+ handler : resolve ( runtimeDir , 'server/middlewares/ipx' )
68
+ } )
69
+ }
70
+ } )
63
71
64
72
// for now only inject viewer on dev mode
65
73
if ( nuxt . options . dev ) {
0 commit comments