mirror of
https://github.com/vercel/flags.git
synced 2026-09-19 03:49:23 +08:00
34 lines
945 B
TypeScript
34 lines
945 B
TypeScript
const configuredUrl = process.env.NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL;
|
|
const fallbackSiteUrl = new URL("http://localhost:3000");
|
|
|
|
const resolveSiteUrl = () => {
|
|
if (!configuredUrl) {
|
|
return {
|
|
issue: "NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL is not set",
|
|
url: fallbackSiteUrl,
|
|
};
|
|
}
|
|
|
|
const value =
|
|
configuredUrl.startsWith("http://") || configuredUrl.startsWith("https://")
|
|
? configuredUrl
|
|
: `https://${configuredUrl}`;
|
|
|
|
try {
|
|
return { issue: undefined, url: new URL(value) };
|
|
} catch {
|
|
return {
|
|
issue: "NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL is invalid",
|
|
url: fallbackSiteUrl,
|
|
};
|
|
}
|
|
};
|
|
|
|
const resolvedSiteUrl = resolveSiteUrl();
|
|
|
|
export const isSiteUrlConfigured = !resolvedSiteUrl.issue;
|
|
export const siteUrlIssue = resolvedSiteUrl.issue;
|
|
export const siteUrl = resolvedSiteUrl.url;
|
|
|
|
export const absoluteUrl = (path: string) => new URL(path, siteUrl).toString();
|