Spaces:
Build error
Build error
import { NextRequest, NextResponse } from "next/server"; | |
async function handle( | |
req: NextRequest, | |
{ params }: { params: { path: string[] } }, | |
) { | |
if (req.method === "OPTIONS") { | |
return NextResponse.json({ body: "OK" }, { status: 200 }); | |
} | |
const [protocol, ...subpath] = params.path; | |
const targetUrl = `${protocol}://${subpath.join("/")}`; | |
const method = req.headers.get("method") ?? undefined; | |
const shouldNotHaveBody = ["get", "head"].includes( | |
method?.toLowerCase() ?? "", | |
); | |
const fetchOptions: RequestInit = { | |
headers: { | |
authorization: req.headers.get("authorization") ?? "", | |
}, | |
body: shouldNotHaveBody ? null : req.body, | |
method, | |
// @ts-ignore | |
duplex: "half", | |
}; | |
const fetchResult = await fetch(targetUrl, fetchOptions); | |
console.log("[Any Proxy]", targetUrl, { | |
status: fetchResult.status, | |
statusText: fetchResult.statusText, | |
}); | |
return fetchResult; | |
} | |
export const POST = handle; | |
export const GET = handle; | |
export const OPTIONS = handle; | |
export const runtime = "nodejs"; | |