This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

feat: add cors

+37 -5
+37 -5
src/index.ts
··· 63 63 ? `/${url.pathname.split("/").filter(Boolean)[0]}` 64 64 : "/"; 65 65 66 + // CORS headers to allow all origins 67 + const corsHeaders = { 68 + "Access-Control-Allow-Origin": "*", 69 + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", 70 + "Access-Control-Allow-Headers": "Content-Type, Authorization", 71 + }; 72 + 73 + // Handle preflight OPTIONS request 74 + if (request.method === "OPTIONS") { 75 + return new Response(null, { 76 + status: 204, 77 + headers: corsHeaders, 78 + }); 79 + } 80 + 81 + let response: Response; 66 82 switch (path) { 67 83 case "/": 68 - return new Response(`Hello World from ${name}@${version}`); 84 + response = new Response(`Hello World from ${name}@${version}`); 85 + break; 69 86 case "/health": 70 - return new Response("OK"); 87 + response = new Response("OK"); 88 + break; 71 89 case "/slack": 72 - return slackApp.run(request); 90 + response = await slackApp.run(request); 91 + break; 73 92 case "/api": 74 - return apiRouter(url); 93 + response = await apiRouter(url); 94 + break; 75 95 default: 76 - return new Response("404 Not Found", { status: 404 }); 96 + response = new Response("404 Not Found", { status: 404 }); 97 + } 98 + 99 + // Add CORS headers to all responses 100 + const newHeaders = new Headers(response.headers); 101 + for (const [key, value] of Object.entries(corsHeaders)) { 102 + newHeaders.set(key, value); 77 103 } 104 + 105 + return new Response(response.body, { 106 + status: response.status, 107 + statusText: response.statusText, 108 + headers: newHeaders, 109 + }); 78 110 }, 79 111 }; 80 112