export function corsHeaders(request: Request): Record { const origin = request.headers.get("Origin"); if (!origin) return {}; return { "Access-Control-Allow-Origin": origin, "Access-Control-Allow-Credentials": "true", "Access-Control-Allow-Methods": "GET, POST, OPTIONS", "Access-Control-Allow-Headers": "Content-Type, Authorization", Vary: "Origin", }; } export function jsonResponse( data: unknown, status = 200, headers?: Record, ): Response { return new Response(JSON.stringify(data), { status, headers: { "Content-Type": "application/json", ...headers, }, }); } export function jsonResponseWithCors( request: Request, data: unknown, status = 200, headers?: Record, ): Response { return jsonResponse(data, status, { ...corsHeaders(request), ...headers, }); } export function corsPreflightResponse(request: Request): Response { return new Response(null, { status: 204, headers: corsHeaders(request), }); } export function errorResponse(message: string, status: number): Response { return jsonResponse({ error: message }, status); }