summaryrefslogtreecommitdiff
path: root/packages/integrations/netlify/src/ssr-function.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/netlify/src/ssr-function.ts')
-rw-r--r--packages/integrations/netlify/src/ssr-function.ts7
1 files changed, 5 insertions, 2 deletions
diff --git a/packages/integrations/netlify/src/ssr-function.ts b/packages/integrations/netlify/src/ssr-function.ts
index d0a963bde..33aea2717 100644
--- a/packages/integrations/netlify/src/ssr-function.ts
+++ b/packages/integrations/netlify/src/ssr-function.ts
@@ -13,11 +13,14 @@ const clientAddressSymbol = Symbol.for('astro.clientAddress');
export const createExports = (manifest: SSRManifest, _args: Args) => {
const app = new App(manifest);
- function createHandler(integrationConfig: { cacheOnDemandPages: boolean }) {
+ function createHandler(integrationConfig: { cacheOnDemandPages: boolean, notFoundContent?: string }) {
return async function handler(request: Request, context: Context) {
const routeData = app.match(request);
- Reflect.set(request, clientAddressSymbol, context.ip);
+ if (!routeData && typeof integrationConfig.notFoundContent !== 'undefined') {
+ return new Response(integrationConfig.notFoundContent, { status: 404 });
+ }
+ Reflect.set(request, clientAddressSymbol, context.ip);
let locals: Record<string, unknown> = {};
const astroLocalsHeader = request.headers.get('x-astro-locals');