import { getCsrfToken } from '@/lib/csrf';

export async function authenticatedFetch(
  input: RequestInfo | URL,
  init: RequestInit,
): Promise<Response> {
  const csrfToken = getCsrfToken();
  if (!csrfToken) throw new Error('Missing CSRF token');

  const headers = new Headers(init.headers);
  headers.set('x-csrf-token', csrfToken);
  const response = await fetch(input, { ...init, headers });
  if (!response.ok) throw new Error(await response.text());
  return response;
}
