Files
bewell-in-ua/middlewares/withI18nMiddleware.ts
2025-02-05 08:01:14 +02:00

26 lines
805 B
TypeScript

import createMiddleware from 'next-intl/middleware'
import {NextFetchEvent, NextRequest, NextResponse} from 'next/server'
import {routing} from '@/i18n/routing'
import {HEADERS} from '@/lib/config/http'
import {translatableRoutesRegEx} from '@/lib/config/routes'
import {type CustomMiddleware} from '@/middlewares/chain'
export function withI18nMiddleware(middleware: CustomMiddleware) {
return async (
request: NextRequest,
event: NextFetchEvent,
response: NextResponse
) => {
if (request.nextUrl.pathname.match(translatableRoutesRegEx) !== null) {
response = createMiddleware(routing)(request)
}
let locale =
request.cookies.get('NEXT_LOCALE')?.value ?? routing.defaultLocale
response.headers.set(HEADERS.xSiteLocale, locale)
return middleware(request, event, response)
}
}