feat: add frontend API helper with env-aware base URL

This commit is contained in:
2026-03-07 23:02:34 -06:00
parent aed1bdf77d
commit cefa32dc93

45
frontend/src/lib/api.ts Normal file
View File

@@ -0,0 +1,45 @@
export interface TransformOptions {
width?: number;
height?: number;
quality?: number;
format?: "png" | "webp" | "jpeg";
fit?: "inside" | "outside" | "cover" | "contain";
position?:
| "center"
| "top"
| "right"
| "bottom"
| "left"
| "top-left"
| "top-right"
| "bottom-left"
| "bottom-right";
}
const API_BASE =
import.meta.env.DEV ? "http://localhost:3000/api" : "/api";
export async function transformImage(
file: File,
options: TransformOptions
): Promise<Blob> {
const formData = new FormData();
formData.append("file", file);
Object.entries(options).forEach(([key, value]) => {
if (value !== undefined && value !== null) {
formData.append(key, String(value));
}
});
const res = await fetch(`${API_BASE}/transform`, {
method: "POST",
body: formData
});
if (!res.ok) {
throw new Error("Transform failed");
}
return await res.blob();
}