aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/netlify/src/integration-functions.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/netlify/src/integration-functions.ts')
-rw-r--r--packages/integrations/netlify/src/integration-functions.ts28
1 files changed, 18 insertions, 10 deletions
diff --git a/packages/integrations/netlify/src/integration-functions.ts b/packages/integrations/netlify/src/integration-functions.ts
index d78fb1f32..025250bc1 100644
--- a/packages/integrations/netlify/src/integration-functions.ts
+++ b/packages/integrations/netlify/src/integration-functions.ts
@@ -22,19 +22,25 @@ function netlifyFunctions({
}: NetlifyFunctionsOptions = {}): AstroIntegration {
let _config: AstroConfig;
let entryFile: string;
+ let needsBuildConfig = false;
return {
name: '@astrojs/netlify',
hooks: {
- 'astro:config:setup': ({ config }) => {
- if (dist) {
- config.outDir = dist;
- } else {
- config.outDir = new URL('./dist/', config.root);
- }
+ 'astro:config:setup': ({ config, updateConfig }) => {
+ needsBuildConfig = !config.build.client;
+ const outDir = dist ?? new URL('./dist/', config.root);
+ updateConfig({
+ outDir,
+ build: {
+ client: outDir,
+ server: new URL('./.netlify/functions-internal/', config.root),
+ }
+ });
},
'astro:config:done': ({ config, setAdapter }) => {
setAdapter(getAdapter({ binaryMediaTypes }));
_config = config;
+ entryFile = config.build.serverEntry.replace(/\.m?js/, '');
if (config.output === 'static') {
console.warn(`[@astrojs/netlify] \`output: "server"\` is required to use this adapter.`);
@@ -43,10 +49,12 @@ function netlifyFunctions({
);
}
},
- 'astro:build:start': async ({ buildConfig }) => {
- entryFile = buildConfig.serverEntry.replace(/\.m?js/, '');
- buildConfig.client = _config.outDir;
- buildConfig.server = new URL('./.netlify/functions-internal/', _config.root);
+ 'astro:build:start': ({ buildConfig }) => {
+ if(needsBuildConfig) {
+ buildConfig.client = _config.outDir;
+ buildConfig.server = new URL('./.netlify/functions-internal/', _config.root);
+ entryFile = buildConfig.serverEntry.replace(/\.m?js/, '');
+ }
},
'astro:build:done': async ({ routes, dir }) => {
await createRedirects(routes, dir, entryFile, false);