summaryrefslogtreecommitdiff
path: root/packages/integrations/netlify/src/netlify-edge-functions.ts
blob: f4766b27652a6dbd9da8d2ab7927e0b9f7014164 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import type { SSRManifest } from 'astro';
import { App } from 'astro/app';

const clientAddressSymbol = Symbol.for('astro.clientAddress');

export function createExports(manifest: SSRManifest) {
	const app = new App(manifest);

	const handler = async (request: Request): Promise<Response | void> => {
		const url = new URL(request.url);

		// If this matches a static asset, just return and Netlify will forward it
		// to its static asset handler.
		if (manifest.assets.has(url.pathname)) {
			return;
		}
		if (app.match(request)) {
			const ip = request.headers.get('x-nf-client-connection-ip');
			Reflect.set(request, clientAddressSymbol, ip);
			const response = await app.render(request);
			if (app.setCookieHeaders) {
				for (const setCookieHeader of app.setCookieHeaders(response)) {
					response.headers.append('Set-Cookie', setCookieHeader);
				}
			}
			return response;
		}

		return new Response(null, {
			status: 404,
			statusText: 'Not found',
		});
	};

	return { default: handler };
}
over-highlight'> 2025-03-27refactor(actions): use `Omit` to avoid leaking types to shared context (#13429)Gravatar Emanuele Stoppa 5-11/+41 * wip * fix(actions): avoid mutation of action context * chore: revert changes * add changeset * Update .changeset/calm-beans-roll.md Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev> --------- Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev> 2025-03-26[ci] release (#13504)astro@5.5.5@astrojs/vue@5.0.8@astrojs/tailwind@6.0.2@astrojs/svelte@7.0.8@astrojs/studio@0.1.5@astrojs/solid-js@5.0.6@astrojs/react@4.2.2@astrojs/preact@4.0.7@astrojs/netlify@6.2.4@astrojs/mdx@4.2.2@astrojs/markdoc@0.13.2@astrojs/db@0.14.9@astrojs/cloudflare@12.3.1@astrojs/alpinejs@0.4.4Gravatar Houston (Bot) 56-132/+197 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> 2025-03-26[ci] formatGravatar Florian Lefebvre 2-2/+2 2025-03-26fix(astro): dynamically import actions (#13510)Gravatar Florian Lefebvre 12-51/+96 * feat: update test * feat: dynamic import * chore: changeset * Update .changeset/clever-tigers-dig.md 2025-03-26[ci] formatGravatar Matt Kane 2-2/+2 2025-03-26fix: cache raw cookie value and decode when getting (#13485)Gravatar Matt Kane 3-17/+37 * fix: cache raw cookie value and decode when getting * Add test * Add comment 2025-03-25fix: update vite (#13505)Gravatar Emanuele Stoppa 16-104/+123 * fix: update vite * use dedupe 2025-03-24[ci] formatGravatar Emanuele Stoppa 1-1/+1 2025-03-24fix(app): call renderer when routes don't match (#13483)Gravatar Emanuele Stoppa 4-1/+30 * fix(app): call renderer when routes don't match * chore: pick 404 exactly * chore: pick route differently Co-authored-by: ascorbic <213306+ascorbic@users.noreply.github.com> 2025-03-21[ci] release (#13460)astro@5.5.4@astrojs/vercel@8.1.3@astrojs/tailwind@6.0.1@astrojs/svelte@7.0.7@astrojs/preact@4.0.6@astrojs/cloudflare@12.3.0Gravatar Houston (Bot) 45-118/+119 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> 2025-03-21fix: better error handling on Stackblitz (#13484)Gravatar Matt Kane 2-0/+12 * fix: better error handling on Stackblitz * Remove unused imports 2025-03-21Repair server islands to work with client router (#13481)Gravatar Martin Trapp 2-6/+11 * rerun server island scripts when used with client router 2025-03-21fix: generate correct external redirects (#13480)Gravatar Matt Kane 3-4/+21 2025-03-21fix(deps): update all non-major dependencies (#13440)Gravatar renovate[bot] 24-435/+436 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 2025-03-21[ci] formatGravatar Florian Lefebvre 2-2/+2 2025-03-21feat(cloudflare): global env (#13444)Gravatar Florian Lefebvre 6-47/+130 * feat(cloudflare): global env * fix: test 2025-03-21fix(deps): update astro client runtimes (#13474)Gravatar renovate[bot] 7-345/+348 * fix(deps): update astro client runtimes * fix: pin vite-plugin-vue --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev> 2025-03-20Small change to linking style (#13472)Gravatar Chris Swithinbank 1-1/+1 Co-authored-by: sarah11918 <5098874+sarah11918@users.noreply.github.com> 2025-03-20Add deprecation notice to Tailwind integration README (#13471)Gravatar Chris Swithinbank 2-6/+11 * Add deprecation notice to Tailwind integration README * Add changeset * Use `[docs]` link style again * update link to more direct content --------- Co-authored-by: Sarah Rainsberger <5098874+sarah11918@users.noreply.github.com> Co-authored-by: anaxite <89195061+anaxite@users.noreply.github.com> Co-authored-by: sarah11918 <5098874+sarah11918@users.noreply.github.com> Co-authored-by: Adammatthiesen <30383579+Adammatthiesen@users.noreply.github.com> Co-authored-by: HiDeoo <494699+HiDeoo@users.noreply.github.com> 2025-03-20[ci] formatGravatar Matt Kane 2-2/+1 2025-03-20fix(preact,svelte): empty target container before rendering `client:only` ↵Gravatar Matt Kane 5-5/+41 island (#13470) * fix(preact,svelte): empty target container before rendering `client:only` island * Remove log 2025-03-20chore(renovate): group updates (#13466)Gravatar Emanuele Stoppa 1-11/+58 2025-03-19[ci] formatGravatar Matt Kane 1-3/+2 2025-03-19fix: don't attempt to move files after build with base (#13463)Gravatar Matt Kane 8-13/+66 * fix: don't attempt to move files after build with base * Remove console * Reword changeset * Remove unused import 2025-03-19[ci] formatGravatar Emanuele Stoppa 2-6/+18 2025-03-19fix(routing): don't add site to static redirects (#13447)Gravatar Emanuele Stoppa 7-10/+49 * fix(routing): don't add site to static redirects * chore: fix canonical tag * chore: fix canonical tag Co-authored-by: ascorbic <213306+ascorbic@users.noreply.github.com> 2025-03-18[ci] formatGravatar Matt Kane 2-2/+1 2025-03-18fix: set correct statusText for custom error pages (#13457)Gravatar Matt Kane 4-2/+19 * fix: set correct statusText for custom error pages * Set conditionally 2025-03-18chore(deps): update github-actions (#13459)Gravatar renovate[bot] 9-13/+13 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 2025-03-18chore(deps): update github-actions (#13458)Gravatar renovate[bot] 1-5/+5 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 2025-03-18[ci] formatGravatar Emanuele Stoppa 1-1/+3 2025-03-18chore: remove deprecated package (#13455)Gravatar Emanuele Stoppa 3-23/+16 2025-03-18fix(deps): update dependency miniflare to v4 (#13441)Gravatar renovate[bot] 2-31/+31 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>