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
858 B
Text
22 lines
No EOL
858 B
Text
import { normalizedAssetPrefix } from '../../../shared/lib/normalized-asset-prefix';
|
|
function getSocketProtocol(assetPrefix) {
|
|
let protocol = window.location.protocol;
|
|
try {
|
|
// assetPrefix is a url
|
|
protocol = new URL(assetPrefix).protocol;
|
|
} catch {}
|
|
return protocol === 'http:' ? 'ws:' : 'wss:';
|
|
}
|
|
export function getSocketUrl(assetPrefix) {
|
|
const prefix = normalizedAssetPrefix(assetPrefix);
|
|
const protocol = getSocketProtocol(assetPrefix || '');
|
|
if (URL.canParse(prefix)) {
|
|
// since normalized asset prefix is ensured to be a URL format,
|
|
// we can safely replace the protocol
|
|
return prefix.replace(/^http/, 'ws');
|
|
}
|
|
const { hostname, port } = window.location;
|
|
return `${protocol}//${hostname}${port ? `:${port}` : ''}${prefix}`;
|
|
}
|
|
|
|
//# sourceMappingURL=get-socket-url.js.map |