21 lines
709 B
JavaScript
21 lines
709 B
JavaScript
const DEFAULT_API_BASE = "/v1";
|
|
|
|
/**
|
|
* API origin for fetch(): root-relative prefix (e.g. /v1) or absolute URL (https://host/v1).
|
|
* Root-relative values are forced to start with "/" so requests work from any SPA route
|
|
* (e.g. /support); otherwise "v1/support" would resolve under the current path and 404.
|
|
*/
|
|
function normalizeApiBase(raw) {
|
|
const s = String(raw ?? "").trim();
|
|
const base = s || DEFAULT_API_BASE;
|
|
|
|
if (/^https?:\/\//i.test(base)) {
|
|
return base.replace(/\/+$/, "") || DEFAULT_API_BASE;
|
|
}
|
|
|
|
const path = base.startsWith("/") ? base : `/${base}`;
|
|
return path.replace(/\/+$/, "") || DEFAULT_API_BASE;
|
|
}
|
|
|
|
export const API_BASE = normalizeApiBase(import.meta.env.VITE_API_BASE);
|