From 354493133c69a91e8c5041cda1bb2a203d14f09f Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Sat, 13 Apr 2024 19:26:29 -1000 Subject: [PATCH] Reorganize FE --- packages/frontend/composables/useConfig.ts | 29 +++++++++++++++++++ packages/frontend/pages/[username]/[uuid].vue | 27 ++++++++--------- packages/frontend/pages/[username]/index.vue | 27 ++++++++--------- packages/frontend/pages/index.vue | 17 ++++++----- packages/frontend/pages/register/index.vue | 14 +++++---- packages/frontend/server/api/config.ts | 21 -------------- packages/frontend/server/tsconfig.json | 3 -- routes.ts | 1 + server.ts | 7 ++++- server/api/api/_fe/config/index.ts | 29 +++++++++++++++++++ 10 files changed, 112 insertions(+), 63 deletions(-) create mode 100644 packages/frontend/composables/useConfig.ts delete mode 100644 packages/frontend/server/api/config.ts delete mode 100644 packages/frontend/server/tsconfig.json create mode 100644 server/api/api/_fe/config/index.ts 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 @@