diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 094d3ac..9a53110 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -63,3 +63,4 @@ services: - "5173:5173" environment: NODE_ENV: development + API_URL: http://server:3000 diff --git a/packages/web/src/lib/api.ts b/packages/web/src/lib/api.ts index dcb9e28..f94c351 100644 --- a/packages/web/src/lib/api.ts +++ b/packages/web/src/lib/api.ts @@ -66,7 +66,13 @@ export async function apiFetch(path: string, options: RequestInit = {}): Prom } } - const json: ApiResponse = await res.json(); + const text = await res.text(); + let json: ApiResponse; + try { + json = JSON.parse(text); + } catch { + throw new Error(`Server error (${res.status})`); + } if (!json.success) { throw new Error(json.error?.message || 'Request failed'); } diff --git a/packages/web/vite.config.ts b/packages/web/vite.config.ts index 91d1cdb..f38fbc2 100644 --- a/packages/web/vite.config.ts +++ b/packages/web/vite.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ server: { port: 5173, proxy: { - '/api': 'http://localhost:3000', + '/api': process.env.API_URL || 'http://localhost:3000', }, }, });