summaryrefslogtreecommitdiff
path: root/packages/integrations/netlify
diff options
context:
space:
mode:
authorGravatar Florian Lefebvre <contact@florian-lefebvre.dev> 2024-06-20 18:21:03 +0200
committerGravatar GitHub <noreply@github.com> 2024-06-20 18:21:03 +0200
commit4489c34aea9cab96c60763850ecfb2d2c272c162 (patch)
tree1c5d965edeb9ae105c9aadfb922d39f75dc84ebd /packages/integrations/netlify
parentbda21bafdf55eddee19593749778b0793b586d11 (diff)
downloadastro-4489c34aea9cab96c60763850ecfb2d2c272c162.tar.gz
astro-4489c34aea9cab96c60763850ecfb2d2c272c162.tar.zst
astro-4489c34aea9cab96c60763850ecfb2d2c272c162.zip
fix(netlify): astro:env getSecret (#293)
Diffstat (limited to 'packages/integrations/netlify')
-rw-r--r--packages/integrations/netlify/src/index.ts15
-rw-r--r--packages/integrations/netlify/src/ssr-function.ts7
2 files changed, 17 insertions, 5 deletions
diff --git a/packages/integrations/netlify/src/index.ts b/packages/integrations/netlify/src/index.ts
index 8485afffb..cd13d9362 100644
--- a/packages/integrations/netlify/src/index.ts
+++ b/packages/integrations/netlify/src/index.ts
@@ -124,6 +124,16 @@ async function writeNetlifyDeployConfig(config: AstroConfig, logger: AstroIntegr
);
}
+// TODO: remove once we don't use a TLA anymore
+async function shouldExternalizeAstroEnvSetup() {
+ try {
+ await import('astro/env/setup');
+ return false;
+ } catch {
+ return true;
+ }
+}
+
export interface NetlifyIntegrationConfig {
/**
* If enabled, On-Demand-Rendered pages are cached for up to a year.
@@ -362,6 +372,11 @@ export default function netlifyIntegration(
ignored: [fileURLToPath(new URL('./.netlify/**', rootDir))],
},
},
+ ...((await shouldExternalizeAstroEnvSetup())
+ ? {
+ ssr: { external: ['astro/env/setup'] },
+ }
+ : {}),
},
image: {
service: {
diff --git a/packages/integrations/netlify/src/ssr-function.ts b/packages/integrations/netlify/src/ssr-function.ts
index 46778ea07..dba0dbead 100644
--- a/packages/integrations/netlify/src/ssr-function.ts
+++ b/packages/integrations/netlify/src/ssr-function.ts
@@ -3,13 +3,10 @@ import type { SSRManifest } from 'astro';
import { App } from 'astro/app';
import { applyPolyfills } from 'astro/app/node';
-type EnvSetupModule = typeof import('astro/env/setup');
-
// Won't throw if the virtual module is not available because it's not supported in
// the users's astro version or if astro:env is not enabled in the project
-const setupModule = 'astro/env/setup';
-await import(/* @vite-ignore */ setupModule)
- .then((mod: EnvSetupModule) => mod.setGetEnv((key) => process.env[key]))
+await import('astro/env/setup')
+ .then((mod) => mod.setGetEnv((key) => process.env[key]))
.catch(() => {});
applyPolyfills();