import type { RequestHandler } from './$types'; import { env } from 'process'; const NO_BODY_METHODS = new Set(['GET', 'HEAD', 'DELETE']); async function proxy(event: Parameters[0]): Promise { const apiUrl = env.API_INTERNAL_URL || 'http://localhost:8080'; const backendUrl = `${apiUrl}/api/${event.params.path}${event.url.search}`; const contentType = event.request.headers.get('Content-Type'); const hasBody = !NO_BODY_METHODS.has(event.request.method); const response = await event.fetch(backendUrl, { method: event.request.method, headers: contentType ? { 'Content-Type': contentType } : {}, body: hasBody ? await event.request.arrayBuffer() : undefined }); const responseHeaders: Record = {}; const responseContentType = response.headers.get('Content-Type'); if (responseContentType) responseHeaders['Content-Type'] = responseContentType; return new Response(response.body, { status: response.status, headers: responseHeaders }); } export const GET: RequestHandler = (event) => proxy(event); export const POST: RequestHandler = (event) => proxy(event); export const PUT: RequestHandler = (event) => proxy(event); export const PATCH: RequestHandler = (event) => proxy(event); export const DELETE: RequestHandler = (event) => proxy(event);