summaryrefslogtreecommitdiff
path: root/packages/integrations/netlify/src/integration-functions.ts
diff options
context:
space:
mode:
authorGravatar Simon Knott <info@simonknott.de> 2023-09-25 15:45:13 +0200
committerGravatar GitHub <noreply@github.com> 2023-09-25 15:45:13 +0200
commit008f7647c4788207aab55ab12c734bd80e6df9c5 (patch)
tree5894d352348eced537b9f0acea6d6930bc108fd7 /packages/integrations/netlify/src/integration-functions.ts
parent954cadc1e534079a6fba369629272caa173d40ac (diff)
downloadastro-008f7647c4788207aab55ab12c734bd80e6df9c5.tar.gz
astro-008f7647c4788207aab55ab12c734bd80e6df9c5.tar.zst
astro-008f7647c4788207aab55ab12c734bd80e6df9c5.zip
fix(netlify): bundle netlify functions as ESM to support top-level await (#8661)
Diffstat (limited to 'packages/integrations/netlify/src/integration-functions.ts')
-rw-r--r--packages/integrations/netlify/src/integration-functions.ts12
1 files changed, 11 insertions, 1 deletions
diff --git a/packages/integrations/netlify/src/integration-functions.ts b/packages/integrations/netlify/src/integration-functions.ts
index b8d56ad65..81aa8ff2f 100644
--- a/packages/integrations/netlify/src/integration-functions.ts
+++ b/packages/integrations/netlify/src/integration-functions.ts
@@ -1,5 +1,6 @@
import type { AstroAdapter, AstroConfig, AstroIntegration, RouteData } from 'astro';
-import { extname } from 'node:path';
+import { extname, join } from 'node:path';
+import { writeFile } from 'node:fs/promises';
import { fileURLToPath } from 'node:url';
import { generateEdgeMiddleware } from './middleware.js';
import type { Args } from './netlify-functions.js';
@@ -85,6 +86,15 @@ function netlifyFunctions({
}
},
'astro:build:done': async ({ routes, dir }) => {
+ const functionsConfig = {
+ version: 1,
+ config: {
+ nodeModuleFormat: "esm"
+ }
+ }
+ const functionsConfigPath = join(fileURLToPath(_config.build.server), "entry.json")
+ await writeFile(functionsConfigPath, JSON.stringify(functionsConfig))
+
const type = builders ? 'builders' : 'functions';
const kind = type ?? 'functions';