summaryrefslogtreecommitdiff
path: root/packages/integrations/netlify/src/netlify-edge-functions.ts
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2022-04-19 11:22:15 -0400
committerGravatar GitHub <noreply@github.com> 2022-04-19 11:22:15 -0400
commitee3577933703799580d463755aab2951d20e2f82 (patch)
treec80148832d2d6724dcec9f957b0c660328bae034 /packages/integrations/netlify/src/netlify-edge-functions.ts
parentf21d97fb4cba5bb82b4de9c07633823e12b15931 (diff)
downloadastro-ee3577933703799580d463755aab2951d20e2f82.tar.gz
astro-ee3577933703799580d463755aab2951d20e2f82.tar.zst
astro-ee3577933703799580d463755aab2951d20e2f82.zip
Netlify Edge function support (#3148)
* Netlify Edge function support * Update readme with edge function information * Adds a changeset * Disable running edge function test in CI for now
Diffstat (limited to 'packages/integrations/netlify/src/netlify-edge-functions.ts')
-rw-r--r--packages/integrations/netlify/src/netlify-edge-functions.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/packages/integrations/netlify/src/netlify-edge-functions.ts b/packages/integrations/netlify/src/netlify-edge-functions.ts
new file mode 100644
index 000000000..f7000442c
--- /dev/null
+++ b/packages/integrations/netlify/src/netlify-edge-functions.ts
@@ -0,0 +1,20 @@
+import './edge-shim.js';
+import { SSRManifest } from 'astro';
+import { App } from 'astro/app';
+
+export function createExports(manifest: SSRManifest) {
+ const app = new App(manifest);
+
+ const handler = async (request: Request): Promise<Response> => {
+ if(app.match(request)) {
+ return app.render(request);
+ }
+
+ return new Response(null, {
+ status: 404,
+ statusText: 'Not found'
+ });
+ };
+
+ return { 'default': handler };
+}