34 lines
895 B
TypeScript
34 lines
895 B
TypeScript
import { env } from "@/env/server"
|
|
|
|
import { findLang } from "@/utils/languages"
|
|
import { removeTrailingSlash } from "@/utils/url"
|
|
|
|
import type { NextRequest } from "next/server"
|
|
|
|
export function getDefaultRequestHeaders(request: NextRequest) {
|
|
const lang = findLang(request.nextUrl.pathname)!
|
|
|
|
let nextUrl
|
|
if (env.PUBLIC_URL) {
|
|
const publicUrl = new URL(env.PUBLIC_URL)
|
|
const nextUrlPublic = request.nextUrl.clone()
|
|
nextUrlPublic.host = publicUrl.host
|
|
nextUrlPublic.hostname = publicUrl.hostname
|
|
nextUrl = nextUrlPublic
|
|
} else {
|
|
nextUrl = request.nextUrl
|
|
}
|
|
|
|
const headers = new Headers(request.headers)
|
|
headers.set("x-lang", lang)
|
|
headers.set(
|
|
"x-pathname",
|
|
removeTrailingSlash(
|
|
request.nextUrl.pathname.replace(`/${lang}`, "").replace(`/webview`, "")
|
|
)
|
|
)
|
|
headers.set("x-url", removeTrailingSlash(nextUrl.href))
|
|
|
|
return headers
|
|
}
|