aboutsummaryrefslogtreecommitdiff
path: root/src/handle-options.js
diff options
context:
space:
mode:
authorTravis Fischer <[email protected]>2021-06-02 13:59:27 -0400
committerTravis Fischer <[email protected]>2021-06-02 13:59:27 -0400
commitf6321fc3249d83a0059ef47978ed101d3c75375f (patch)
tree9da8b59a0c94c08f92506e57653b8c9f55fa85e8 /src/handle-options.js
downloadcf-image-proxy-f6321fc3249d83a0059ef47978ed101d3c75375f.tar.xz
cf-image-proxy-f6321fc3249d83a0059ef47978ed101d3c75375f.zip
feat: import from notion2site repo
Diffstat (limited to 'src/handle-options.js')
-rw-r--r--src/handle-options.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/handle-options.js b/src/handle-options.js
new file mode 100644
index 0000000..62cb977
--- /dev/null
+++ b/src/handle-options.js
@@ -0,0 +1,29 @@
+const allowedMethods = 'GET, HEAD, POST, PUT, DELETE, TRACE, PATCH, OPTIONS'
+
+export function handleOptions(request) {
+ // Make sure the necessary headers are present for this to be a valid pre-flight request
+ if (
+ request.headers.get('Origin') !== null &&
+ request.headers.get('Access-Control-Request-Method') !== null &&
+ request.headers.get('Access-Control-Request-Headers') !== null
+ ) {
+ // Handle CORS pre-flight request.
+ return new Response(null, {
+ headers: {
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': allowedMethods,
+ 'Access-Control-Allow-Headers': request.headers.get(
+ 'Access-Control-Request-Headers'
+ )
+ }
+ })
+ } else {
+ // Handle standard OPTIONS request.
+ // If you want to allow other HTTP Methods, you can do that here.
+ return new Response(null, {
+ headers: {
+ Allow: allowedMethods
+ }
+ })
+ }
+}