Restore 0.1.5 version from stash

This commit is contained in:
liaibo
2025-12-08 19:56:24 +08:00
parent de189e938d
commit 8db3f4e32d
8578 changed files with 2703426 additions and 217 deletions
+48
View File
@@ -0,0 +1,48 @@
const TRAILING_SLASH = /\/$/;
export function getBackendBaseUrl(): string {
const raw = process.env.BACKEND_URL ?? process.env.NEXT_PUBLIC_BACKEND_URL;
if (!raw) {
throw new Error("BACKEND_URL 未配置");
}
return raw.replace(TRAILING_SLASH, "");
}
export function tryGetBackendBaseUrl(): string | null {
try {
return getBackendBaseUrl();
} catch {
return null;
}
}
type SearchParamsInit = Record<string, string | number | boolean | undefined> | URLSearchParams;
export function buildBackendUrl(path: string, params?: SearchParamsInit): URL {
const base = getBackendBaseUrl();
const url = new URL(path, base);
if (params) {
const search =
params instanceof URLSearchParams
? params
: new URLSearchParams(
Object.entries(params).reduce<Record<string, string>>((acc, [key, value]) => {
if (value !== undefined) {
acc[key] = String(value);
}
return acc;
}, {}),
);
search.forEach((value, key) => {
if (value !== undefined && value !== null) {
url.searchParams.set(key, value);
}
});
}
return url;
}
export async function fetchBackend(path: string, init?: RequestInit, params?: SearchParamsInit) {
const url = buildBackendUrl(path, params);
return fetch(url, init);
}