fix: passing headers

This commit is contained in:
Michael Zetterberg
2024-05-20 10:21:22 +02:00
parent d9ca0d7b52
commit 6d85bb5887
4 changed files with 26 additions and 16 deletions

View File

@@ -43,14 +43,6 @@ export const middleware: NextMiddleware = async (request, event) => {
if (_continue) {
continue
}
// We use x-lang as either Akamai or Netlify use x-language as the users preferred language
result?.headers.set("x-lang", lang)
result?.headers.set(
"x-pathname",
request.nextUrl.pathname.replace(`/${lang}`, "")
)
result?.headers.set("x-url", request.nextUrl.href)
return result
}
}

View File

@@ -1,3 +1,4 @@
import { headers } from "next/headers"
import { NextResponse } from "next/server"
import { findLang } from "@/constants/languages"
@@ -5,13 +6,15 @@ import { notFound } from "@/server/errors/next"
import { resolve as resolveEntry } from "@/utils/entry"
import { getDefaultRequestHeaders } from "./utils"
import type { NextMiddleware } from "next/server"
import { MiddlewareMatcher } from "@/types/middleware"
export const middleware: NextMiddleware = async (request) => {
const { nextUrl } = request
const lang = findLang(nextUrl.pathname)
const lang = findLang(nextUrl.pathname)!
const pathNameWithoutLang = nextUrl.pathname.replace(`/${lang}`, "")
const searchParams = new URLSearchParams(request.nextUrl.searchParams)
@@ -24,6 +27,9 @@ export const middleware: NextMiddleware = async (request) => {
)
}
const headers = getDefaultRequestHeaders(request)
headers.set("x-uid", uid)
const isCurrent = contentType ? contentType.indexOf("current") >= 0 : false
if (request.nextUrl.pathname.includes("/preview")) {
@@ -41,9 +47,7 @@ export const middleware: NextMiddleware = async (request) => {
),
{
request: {
headers: new Headers({
"x-uid": uid,
}),
headers,
},
}
)
@@ -65,9 +69,7 @@ export const middleware: NextMiddleware = async (request) => {
),
{
request: {
headers: new Headers({
"x-uid": uid,
}),
headers,
},
}
)

View File

@@ -7,6 +7,8 @@ import { internalServerError, notFound } from "@/server/errors/next"
import { resolve as resolveEntry } from "@/utils/entry"
import { getDefaultRequestHeaders } from "./utils"
import type { NextMiddleware } from "next/server"
import type { MiddlewareMatcher } from "@/types/middleware"
@@ -39,7 +41,7 @@ export const middleware: NextMiddleware = async (request) => {
)
}
const headers = new Headers(request.headers)
const headers = getDefaultRequestHeaders(request)
headers.set("x-uid", uid)
return NextResponse.next({
request: {

14
middlewares/utils.ts Normal file
View File

@@ -0,0 +1,14 @@
import { findLang } from "@/constants/languages"
import type { NextRequest } from "next/server"
export function getDefaultRequestHeaders(request: NextRequest) {
const lang = findLang(request.nextUrl.pathname)!
const headers = new Headers(request.headers)
headers.set("x-lang", lang)
headers.set("x-pathname", request.nextUrl.pathname.replace(`/${lang}`, ""))
headers.set("x-url", request.nextUrl.href)
return headers
}