diff options
Diffstat (limited to 'frontend/src/utils.ts')
| -rw-r--r-- | frontend/src/utils.ts | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/frontend/src/utils.ts b/frontend/src/utils.ts deleted file mode 100644 index ebfb692..0000000 --- a/frontend/src/utils.ts +++ /dev/null @@ -1,32 +0,0 @@ -export function getCookie(name: string): string | undefined { - const value = `; ${document.cookie}`; - const parts = value.split(`; ${name}=`); - if (parts.length === 2) return parts.pop()?.split(';').shift(); -} - -/** - * A wrapper around fetch that automatically includes the CSRF token - * for state-changing requests (POST, PUT, DELETE). - */ -export async function apiFetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> { - const method = init?.method?.toUpperCase() || 'GET'; - const isStateChanging = ['POST', 'PUT', 'DELETE'].includes(method); - - const headers = new Headers(init?.headers || {}); - - if (isStateChanging) { - const token = getCookie('csrf_token'); - if (token) { - headers.set('X-CSRF-Token', token); - } - } - - // Ensure requests are treated as coming from our own origin if needed, - // but for a same-origin API, standard fetch defaults are usually fine. - - return fetch(input, { - ...init, - headers, - credentials: 'include', // Ensure cookies are sent - }); -} |
