文件
tennis-training-hub/server/publicUrl.ts
2026-03-15 00:12:26 +08:00

23 行
558 B
TypeScript

import { ENV } from "./_core/env";
function hasProtocol(value: string) {
return /^[a-z][a-z0-9+.-]*:\/\//i.test(value);
}
export function toPublicUrl(pathOrUrl: string) {
const value = pathOrUrl.trim();
if (!value) {
throw new Error("Public URL value is empty");
}
if (hasProtocol(value)) {
return value;
}
if (!ENV.appPublicBaseUrl) {
throw new Error("APP_PUBLIC_BASE_URL is required for externally accessible asset URLs");
}
return new URL(value.startsWith("/") ? value : `/${value}`, ENV.appPublicBaseUrl).toString();
}