export async function getJson(url, { signal } = {}) { const response = await fetch(url, { headers: { Accept: 'application/json' }, signal, }); if (!response.ok) { const message = await response.text().catch(() => ''); throw new Error(`HTTP ${response.status}: ${message.slice(0, 120)}`); } return response.json(); } const controller = new AbortController(); setTimeout(() => controller.abort(), 5000); getJson('/api/health', { signal: controller.signal }).then(console.log).catch(console.error);