18 lines
640 B
TypeScript
18 lines
640 B
TypeScript
// In the browser, API calls go to the same origin (Next.js rewrites to backend).
|
|
// On the server, they go directly to the backend.
|
|
const API = typeof window === "undefined"
|
|
? (process.env.BACKEND_URL || "http://localhost:18888")
|
|
: "";
|
|
|
|
export async function fetchAPI<T>(path: string): Promise<T> {
|
|
const res = await fetch(`${API}${path}`);
|
|
if (!res.ok) throw new Error(`API error: ${res.status}`);
|
|
return res.json();
|
|
}
|
|
|
|
export async function postAPI<T>(path: string): Promise<T> {
|
|
const res = await fetch(`${API}${path}`, { method: "POST" });
|
|
if (!res.ok) throw new Error(`API error: ${res.status}`);
|
|
return res.json();
|
|
}
|