aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/netlify/src/netlify-edge-functions.ts
diff options
context:
space:
mode:
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 };
+}