Add CORS headers to CDN Worker (#5559)

This commit is contained in:
Kamil Kisiela 2024-08-29 16:39:50 +02:00 committed by GitHub
parent 8b04c7adef
commit 49100f2fe9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -192,8 +192,13 @@ const handler: ExportedHandler<Env> = {
},
});
const { corsify, preflight } = itty.createCors();
const router = itty
.Router()
// Handles all OPTIONS and preflight requests.
// https://github.com/kwhitley/itty.dev/blob/v4.x/src/routes/itty-router/cors/%2Bpage.md#preflight-middleware
.all('*', preflight)
.get(
'/_health',
() =>
@ -205,23 +210,29 @@ const handler: ExportedHandler<Env> = {
// Legacy CDN Handlers
.get('*', handleRequest);
try {
return await router.handle(request, sentry.captureException.bind(sentry)).then(response => {
if (response) {
return response;
}
return (
router
.handle(request, sentry.captureException.bind(sentry))
.then(response => {
if (response) {
return response;
}
sentry.addBreadcrumb({
message: 'No response from router',
});
sentry.addBreadcrumb({
message: 'No response from router',
});
return createResponse(analytics, 'Not found', { status: 404 }, 'unknown', request);
});
} catch (error) {
console.error(error);
sentry.captureException(error);
return new UnexpectedError(analytics, request);
}
return createResponse(analytics, 'Not found', { status: 404 }, 'unknown', request);
})
.catch(error => {
console.error(error);
sentry.captureException(error);
return new UnexpectedError(analytics, request);
})
// Adds the appropriate CORS headers to any Response.
// https://github.com/kwhitley/itty.dev/blob/v4.x/src/routes/itty-router/cors/%2Bpage.md#corsify
.then(corsify)
);
},
};