Initial commit. Working login, example UI with prototype and demo, connections to DB and DAV, local and prod setups.
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
// src/routes/api/[...path]/+server.ts
|
||||
import { error } from '@sveltejs/kit';
|
||||
import type { RequestHandler } from './$types';
|
||||
|
||||
const BACKEND_URL =
|
||||
import.meta.env.VITE_BACKEND_URL || 'http://localhost:8080';
|
||||
|
||||
async function proxyRequest(request: Request, path: string) {
|
||||
const url = `${BACKEND_URL}/api/${path}`;
|
||||
|
||||
try {
|
||||
const headers = new Headers(request.headers);
|
||||
headers.delete('host');
|
||||
|
||||
const backendRes = await fetch(url, {
|
||||
method: request.method,
|
||||
headers,
|
||||
body: ['GET', 'HEAD'].includes(request.method)
|
||||
? undefined
|
||||
: await request.text()
|
||||
});
|
||||
|
||||
// Forward everything transparently
|
||||
const resHeaders = new Headers(backendRes.headers);
|
||||
return new Response(backendRes.body, {
|
||||
status: backendRes.status,
|
||||
headers: resHeaders
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('Proxy error:', err);
|
||||
return error(502, 'Backend unreachable');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export const GET: RequestHandler = ({ request, params }) => proxyRequest(request, params.path);
|
||||
export const POST: RequestHandler = ({ request, params }) => proxyRequest(request, params.path);
|
||||
export const PUT: RequestHandler = ({ request, params }) => proxyRequest(request, params.path);
|
||||
export const DELETE: RequestHandler = ({ request, params }) => proxyRequest(request, params.path);
|
||||
export const PATCH: RequestHandler = ({ request, params }) => proxyRequest(request, params.path);
|
||||
Reference in New Issue
Block a user