// Endpoints come from env, never hardcoded. // // In local dev VITE_API_URL is set at build time via .dev.vars and Vite // replaces the import.meta.env reference inline. In CF Workers deployments // VITE_API_URL is a runtime text binding — invisible to Vite at build time — // so import.meta.env.VITE_API_URL is undefined in the bundle. We fall back to // the current origin + /api, which is correct because the dispatcher worker // routes every /api/* path to the API units on the same hostname. export function apiUrl(): string { if (import.meta.env.SSR) { // SSR context: PikkuProvider is a client-side provider and its serverUrl // is only consumed by hooks that run in the browser. Return the build-time // var when available (local dev) or a placeholder so SSR never throws. return import.meta.env.VITE_API_URL ?? '/__api' } // Client: use the build-time var (local dev) or derive from current origin. return import.meta.env.VITE_API_URL ?? window.location.origin + '/api' }