/** * Wrapper around fetch that prepends the Next.js basePath so API calls * reach the correct backend when deployed under a sub-path (e.g. /ppt-tool). * * basePath is read from next.config.mjs at build time via next/config. * Usage: apiFetch('/api/v1/...', options) — identical to fetch(), just works. */ import getConfig from 'next/config'; const { publicRuntimeConfig } = getConfig() ?? {}; const BASE_PATH: string = publicRuntimeConfig?.basePath ?? ''; export function apiFetch(path: string, init?: RequestInit): Promise { const url = path.startsWith('/api/') ? `${BASE_PATH}${path}` : path; return fetch(url, init); }