CORS 미들웨어

CORS 헤더 설정

크로스 오리진 요청을 허용합니다.

function corsMiddleware() {
  const corsHeaders = {
    "Access-Control-Allow-Origin": "*",
    "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
    "Access-Control-Allow-Headers": "Content-Type, Authorization",
    "Access-Control-Max-Age": "86400"
  };

  return {
    preflight: (req) => {
      if (req.method === "OPTIONS") {
        return new Response(null, { headers: corsHeaders });
      }
      return null;
    },
    apply: (response) => {
      Object.entries(corsHeaders).forEach(([key, value]) => {
        response.headers.set(key, value);
      });
      return response;
    }
  };
}

const server = Bun.serve({
  port: 3000,
  fetch(req) {
    const cors = corsMiddleware();
    const preflightResponse = cors.preflight(req);

    if (preflightResponse) return preflightResponse;

    let response = new Response("CORS enabled API");
    return cors.apply(response);
  }
});