Files
web/apps/partner-sas/server/utils.ts
Anton Gunnarsson f79ff9b570 Merged in chore/cleanup-unused (pull request #3461)
chore: Cleanup unused vars, exports, types

* Cleanup some unused exports

* Remove more

* Readd CampaignPageIncludedHotelsRef

* Add alias comment to procedure exports

* Remove unused exports


Approved-by: Linus Flood
2026-01-22 12:34:07 +00:00

45 lines
1.7 KiB
TypeScript

import { env } from "@/env/server"
import type { NextRequest } from "next/server"
/**
* Use this function when you want to create URLs that are public facing, for
* example for redirects or redirectTo query parameters.
* Dedicated environments are behind Akamai (test, stage, production). They have
* env.PUBLIC_URL set.
* All other environment like deploy previews and branch deployments are not
* behind Akamai and therefore do not have env.PUBLIC_URL set.
* We need this approach because Netlify uses x-forwarded-host internally and
* strips it from ever reaching our code.
* TODO: Replace this approach with custom header in Akamai that mirrors the
* value in x-forwarded-host which would not get stripped by Netlify.
* @param request The incoming request.
* @returns NextURL The public facing URL instance for the given request.
*/
export function getPublicNextURL(request: NextRequest) {
if (env.PUBLIC_URL) {
const publicNextURL = request.nextUrl.clone()
// Akamai in front of Netlify for dedicated environments
// require us to rewrite the incoming host and hostname
// to match the public URL used to visit Akamai.
const url = new URL(env.PUBLIC_URL)
publicNextURL.host = url.host
publicNextURL.hostname = url.hostname
return publicNextURL
}
return request.nextUrl
}
/**
* Use this function when you want the public facing URL for the given request.
* Read about the motivation in getPublicNextURL above.
* @see getPublicNextURL
* @param request The incoming request.
* @returns string The public facing origin for the given request.
*/
export function getPublicURL(request: NextRequest) {
if (env.PUBLIC_URL) {
return env.PUBLIC_URL
}
return request.nextUrl.origin
}