diff --git a/packages/frontend/composables/useConfig.ts b/packages/frontend/composables/useConfig.ts new file mode 100644 index 00000000..de274411 --- /dev/null +++ b/packages/frontend/composables/useConfig.ts @@ -0,0 +1,29 @@ +export const useConfig = async () => { + let host = useRequestHeader("X-Forwarded-Host"); + + if (!host && process.server) { + host = process.env.BUILD_HOST; + } + + if (!host?.includes("http")) { + // On server, this will be some kind of localhost + host = `http://${host}`; + } + + if (process.client) { + host = useRequestURL().origin.toString(); + } + + console.log(host); + + if (!host) { + throw createError({ + statusCode: 500, + statusMessage: "No X-Forwarded-Host header found", + }); + } + + return await fetch(new URL("/api/_fe/config", host)).then((res) => + res.json(), + ); +}; diff --git a/packages/frontend/pages/[username]/[uuid].vue b/packages/frontend/pages/[username]/[uuid].vue index 9190b125..93c1d8bc 100644 --- a/packages/frontend/pages/[username]/[uuid].vue +++ b/packages/frontend/pages/[username]/[uuid].vue @@ -1,6 +1,7 @@