From 73c2038497f90d96ba23e2c6060c84be3f17c491 Mon Sep 17 00:00:00 2001 From: Rune Harlyk Date: Sat, 24 Aug 2024 21:05:02 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=BF=20Adds=20api=20function=20to=20ens?= =?UTF-8?q?ure=20a=20host?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/lib/api.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/lib/api.ts b/app/src/lib/api.ts index dc70b1b..167e1c4 100644 --- a/app/src/lib/api.ts +++ b/app/src/lib/api.ts @@ -1,6 +1,7 @@ import { user } from '$lib/stores/user'; import { get } from 'svelte/store'; import { Err, Ok, type Result } from './utilities'; +import { location } from './stores'; export namespace api { export function get(endpoint: string, params?: RequestInit) { @@ -26,6 +27,7 @@ async function sendRequest( data?: unknown, params?: RequestInit ): Promise> { + endpoint = resolveUrl(endpoint); const user_token = get(user).bearer_token; const body = data !== null && typeof data !== 'undefined' ? JSON.stringify(data) : undefined; @@ -66,6 +68,12 @@ async function sendRequest( } } +function resolveUrl(url: string): string { + if (url.startsWith('http') || !get(location)) return url; + const protocol = window.location.protocol; + return `${protocol}//${get(location)}${url.startsWith('/') ? '' : '/'}${url}`; +} + export class ApiError extends Error { constructor(public readonly response: Response) { super(`${response.status}`);