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
commit4cf54c60aa63bd614b242da0602790015005673d (patch)
tree25fcec1da64890044742a1090b1773076a0d43e9 /packages/integrations/netlify/src/netlify-edge-functions.ts
parentc35e94f5443d4ade07ff787d39b042eb3b9004fb (diff)
downloadastro-4cf54c60aa63bd614b242da0602790015005673d.tar.gz
astro-4cf54c60aa63bd614b242da0602790015005673d.tar.zst
astro-4cf54c60aa63bd614b242da0602790015005673d.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 };
+}