import { redirect } from 'next/navigation'; const API_BASE = process.env.NEXT_PUBLIC_API_URL_INTERNAL || 'http://recipe-api:8080'; export async function fetchJson(path: string, init?: RequestInit): Promise { // Använd alltid relativ path i webbläsaren för att undvika mixed content const isServer = typeof window === 'undefined'; const url = isServer ? (path.startsWith('http') ? path : `${API_BASE}${path}`) : path; // Dynamisk import så att auth-headers inte bundlas till klienten const authHeaders = isServer ? await (await import('./auth-headers')).getAuthHeaders() : {}; const res = await fetch(url, { ...init, cache: 'no-store', headers: { 'Content-Type': 'application/json', ...authHeaders, ...(init?.headers || {}), }, }); if (!res.ok) { if (res.status === 401 && isServer) { redirect('/login'); } const text = await res.text(); throw new Error(`API ${res.status}: ${text}`); } return res.json(); } export { API_BASE };