import { NextRequest } from 'next/server' export const runtime = 'nodejs' function backendBase(): string { return process.env.ASTRO_BACKEND_BASE_URL ?? 'http://127.0.0.1:8000' } async function proxy(req: NextRequest, params: { path: string[] }) { const path = `/${params.path.join('/')}` const url = new URL(req.url) const target = `${backendBase()}${path}${url.search}` const init: RequestInit = { method: req.method, headers: { 'content-type': req.headers.get('content-type') ?? '', }, cache: 'no-store', } if (req.method !== 'GET' && req.method !== 'HEAD') { init.body = await req.text() } const res = await fetch(target, init) const body = await res.arrayBuffer() return new Response(body, { status: res.status, headers: { 'content-type': res.headers.get('content-type') ?? 'application/json; charset=utf-8', }, }) } export async function GET(req: NextRequest, ctx: { params: Promise<{ path: string[] }> }) { const params = await ctx.params return proxy(req, params) } export async function POST(req: NextRequest, ctx: { params: Promise<{ path: string[] }> }) { const params = await ctx.params return proxy(req, params) }