41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
import { type NextMiddleware, NextResponse } from "next/server"
|
|
|
|
import { getPublicNextURL } from "@/server/utils"
|
|
|
|
import type { MiddlewareMatcher } from "@/types/middleware"
|
|
|
|
export const middleware: NextMiddleware = (request) => {
|
|
const url = getPublicNextURL(request)
|
|
const { searchParams } = url
|
|
|
|
let modified = false
|
|
|
|
if (searchParams.has("fromDate")) {
|
|
const value = searchParams.get("fromDate")
|
|
searchParams.delete("fromDate")
|
|
searchParams.set("fromdate", value!)
|
|
modified = true
|
|
}
|
|
|
|
if (searchParams.has("toDate")) {
|
|
const value = searchParams.get("toDate")
|
|
searchParams.delete("toDate")
|
|
searchParams.set("todate", value!)
|
|
modified = true
|
|
}
|
|
|
|
if (modified) {
|
|
url.search = searchParams.toString()
|
|
return NextResponse.redirect(url, {
|
|
status: 308,
|
|
})
|
|
}
|
|
|
|
return NextResponse.next()
|
|
}
|
|
|
|
export const matcher: MiddlewareMatcher = (request) => {
|
|
const { searchParams } = request.nextUrl
|
|
return searchParams.has("fromDate") || searchParams.has("toDate")
|
|
}
|