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"; | |