mirror of
https://github.com/tomru/pfadi-bussle.git
synced 2026-03-04 15:07:13 +01:00
38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
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<Buffer>((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())
|
|
} |