From a7f1d5334e1f8e263ec2a6a5dd80104c72759bcb Mon Sep 17 00:00:00 2001 From: David Reese Date: Thu, 5 Dec 2024 13:52:13 -0500 Subject: [PATCH 1/5] Setup the ipx provider if specified in options Previously, specifying a custom provider would prevent setup of ipx --- src/module.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/module.ts b/src/module.ts index a174723cc..f8b2495a0 100644 --- a/src/module.ts +++ b/src/module.ts @@ -134,12 +134,12 @@ ${providers.map(p => ` ['${p.name}']: { provider: ${p.importName}, defaults: ${ }) nuxt.hook('nitro:init', async (nitro) => { - if (!options.provider || options.provider === 'ipx' || options.provider === 'ipxStatic') { + if (!options.provider || options.provider === 'ipx' || options.provider === 'ipxStatic' || 'ipx' in options || 'ipxStatic' in options) { const resolvedProvider = nitro.options.static || options.provider === 'ipxStatic' ? 'ipxStatic' : nitro.options.node ? 'ipx' : 'none' - imageOptions.provider = options.provider = resolvedProvider + imageOptions.provider = options.provider || resolvedProvider options[resolvedProvider] = options[resolvedProvider] || {} const p = await resolveProvider(nuxt, resolvedProvider, { From 2c125efb23aa4fa6cbe8bee13358c61ab756f582 Mon Sep 17 00:00:00 2001 From: David Reese Date: Thu, 5 Dec 2024 14:32:31 -0500 Subject: [PATCH 2/5] Update src/module.ts Co-authored-by: Daniel Roe --- src/module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/module.ts b/src/module.ts index f8b2495a0..99530a190 100644 --- a/src/module.ts +++ b/src/module.ts @@ -139,7 +139,7 @@ ${providers.map(p => ` ['${p.name}']: { provider: ${p.importName}, defaults: ${ ? 'ipxStatic' : nitro.options.node ? 'ipx' : 'none' - imageOptions.provider = options.provider || resolvedProvider + imageOptions.provider = options.provider ||= resolvedProvider options[resolvedProvider] = options[resolvedProvider] || {} const p = await resolveProvider(nuxt, resolvedProvider, { From f5845072afc21528a5a9167d984dadaa37bf173a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 6 Dec 2024 07:59:00 +0000 Subject: [PATCH 3/5] fix: remove `options.ipxStatic` reference --- src/module.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/module.ts b/src/module.ts index 99530a190..bce87c125 100644 --- a/src/module.ts +++ b/src/module.ts @@ -134,13 +134,20 @@ ${providers.map(p => ` ['${p.name}']: { provider: ${p.importName}, defaults: ${ }) nuxt.hook('nitro:init', async (nitro) => { - if (!options.provider || options.provider === 'ipx' || options.provider === 'ipxStatic' || 'ipx' in options || 'ipxStatic' in options) { + if (!options.provider || options.provider === 'ipx' || options.provider === 'ipxStatic' || 'ipx' in options) { const resolvedProvider = nitro.options.static || options.provider === 'ipxStatic' ? 'ipxStatic' : nitro.options.node ? 'ipx' : 'none' - imageOptions.provider = options.provider ||= resolvedProvider - options[resolvedProvider] = options[resolvedProvider] || {} + if (!options.provider || options.provider === 'ipx' || options.provider === 'ipxStatic') { + imageOptions.provider = options.provider = resolvedProvider + options[resolvedProvider] = options[resolvedProvider] || {} + } + + // handle the case of `ipx: {}` existing in options, but deploying a static site + if (resolvedProvider === 'ipxStatic' && options.provider !== resolvedProvider) { + options.ipxStatic ||= options.ipx + } const p = await resolveProvider(nuxt, resolvedProvider, { options: options[resolvedProvider], From 827e068ca3905c1531983378e55736993b711b8d Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 6 Dec 2024 16:24:35 +0000 Subject: [PATCH 4/5] fix: always initialise ipxStatic from ipx --- src/module.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/module.ts b/src/module.ts index bce87c125..ac4705851 100644 --- a/src/module.ts +++ b/src/module.ts @@ -141,12 +141,15 @@ ${providers.map(p => ` ['${p.name}']: { provider: ${p.importName}, defaults: ${ if (!options.provider || options.provider === 'ipx' || options.provider === 'ipxStatic') { imageOptions.provider = options.provider = resolvedProvider - options[resolvedProvider] = options[resolvedProvider] || {} } - // handle the case of `ipx: {}` existing in options, but deploying a static site - if (resolvedProvider === 'ipxStatic' && options.provider !== resolvedProvider) { - options.ipxStatic ||= options.ipx + // initialise provider options + if (resolvedProvider === 'ipxStatic') { + // handle the case of `ipx: {}` existing in options, but deploying a static site + options.ipxStatic ||= options.ipx || {} + } + else { + options[resolvedProvider] = options[resolvedProvider] || {} } const p = await resolveProvider(nuxt, resolvedProvider, { From 75f5fc052d5228b279f72284df79cf8707926fca Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 6 Dec 2024 16:25:55 +0000 Subject: [PATCH 5/5] fix: require options.ipx to be truthy --- src/module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/module.ts b/src/module.ts index ac4705851..1d251cb85 100644 --- a/src/module.ts +++ b/src/module.ts @@ -134,7 +134,7 @@ ${providers.map(p => ` ['${p.name}']: { provider: ${p.importName}, defaults: ${ }) nuxt.hook('nitro:init', async (nitro) => { - if (!options.provider || options.provider === 'ipx' || options.provider === 'ipxStatic' || 'ipx' in options) { + if (!options.provider || options.provider === 'ipx' || options.provider === 'ipxStatic' || options.ipx) { const resolvedProvider = nitro.options.static || options.provider === 'ipxStatic' ? 'ipxStatic' : nitro.options.node ? 'ipx' : 'none'