Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
22 lines
No EOL
851 B
Text
22 lines
No EOL
851 B
Text
/**
|
|
* The result of parsing a URL relative to a base URL.
|
|
*/ export function parseRelativeURL(url, base) {
|
|
const baseURL = typeof base === 'string' ? new URL(base) : base;
|
|
const relative = new URL(url, base);
|
|
// The URL is relative if the origin is the same as the base URL.
|
|
const isRelative = relative.origin === baseURL.origin;
|
|
return {
|
|
url: isRelative ? relative.toString().slice(baseURL.origin.length) : relative.toString(),
|
|
isRelative
|
|
};
|
|
}
|
|
/**
|
|
* Given a URL as a string and a base URL it will make the URL relative
|
|
* if the parsed protocol and host is the same as the one in the base
|
|
* URL. Otherwise it returns the same URL string.
|
|
*/ export function getRelativeURL(url, base) {
|
|
const relative = parseRelativeURL(url, base);
|
|
return relative.url;
|
|
}
|
|
|
|
//# sourceMappingURL=relativize-url.js.map |