import { NextRequest, NextResponse } from "next/server"; async function handle(req: NextRequest) { if (req.method === "OPTIONS") { return NextResponse.json({ body: "OK" }, { status: 200 }); } const targetUrl = req.nextUrl.searchParams.get("url"); if (!targetUrl) { return NextResponse.json({ body: "Bad Url" }, { status: 500 }); } const method = req.headers.get("method") ?? undefined; const fetchOptions: RequestInit = { headers: { authorization: req.headers.get("authorization") ?? "", }, 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 GET = handle; export const OPTIONS = handle; export const runtime = "edge"; export const revalidate = 0;