import { getBaseURL } from "../../../helpers/url" import { auth } from "../../../lib/auth" import type { NextApiRequest, NextApiResponse } from "next" export const config = { api: { bodyParser: false, }, } export default async function handler(req: NextApiRequest, res: NextApiResponse) { const baseUrl = getBaseURL() const url = new URL(req.url!, baseUrl) let body: Buffer | undefined if (req.method !== "GET" && req.method !== "HEAD") { body = await new Promise((resolve, reject) => { const chunks: Buffer[] = [] req.on("data", (chunk: Buffer) => chunks.push(chunk)) req.on("end", () => resolve(Buffer.concat(chunks))) req.on("error", reject) }) } const webRequest = new Request(url.toString(), { method: req.method, headers: req.headers as HeadersInit, body: body, }) const response = await auth.handler(webRequest) res.status(response.status) response.headers.forEach((value, key) => { res.setHeader(key, value) }) res.end(await response.text()) }