aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-03-22 03:45:51 +0000
committerFuwn <[email protected]>2026-03-22 03:50:07 +0000
commita1a747d6b46cc653f1716f6f71cf02284b0f20cd (patch)
tree01c0e6f9bcef809efc07f7a1032f49b9d58e8faa /src/lib
parentrefactor: extract app origin config (diff)
downloaddue.moe-a1a747d6b46cc653f1716f6f71cf02284b0f20cd.tar.xz
due.moe-a1a747d6b46cc653f1716f6f71cf02284b0f20cd.zip
refactor: centralise site origin usage
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/Home/HeadTitle.svelte6
-rw-r--r--src/lib/Utility/appOrigin.ts10
2 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/Home/HeadTitle.svelte b/src/lib/Home/HeadTitle.svelte
index 9ac1ea71..0759943f 100644
--- a/src/lib/Home/HeadTitle.svelte
+++ b/src/lib/Home/HeadTitle.svelte
@@ -1,4 +1,6 @@
<script lang="ts">
+import { siteUrl } from "$lib/Utility/appOrigin";
+
let { route = undefined, path = "/" }: { route?: string; path?: string } =
$props();
const title = $derived((route ? `${route} • ` : "") + "due.moe");
@@ -6,11 +8,11 @@ const title = $derived((route ? `${route} • ` : "") + "due.moe");
<svelte:head>
<!-- Facebook -->
- <meta name="og:url" property="og:url" content={`https://due.moe${path}`} />
+ <meta name="og:url" property="og:url" content={siteUrl(path)} />
<meta name="og:title" property="og:title" content={title} />
<!-- Twitter -->
- <meta name="twitter:url" property="twitter:url" content={`https://due.moe${path}`} />
+ <meta name="twitter:url" property="twitter:url" content={siteUrl(path)} />
<meta name="twitter:title" property="twitter:title" content={title} />
<title>{title}</title>
diff --git a/src/lib/Utility/appOrigin.ts b/src/lib/Utility/appOrigin.ts
index 8d534d81..cdc53995 100644
--- a/src/lib/Utility/appOrigin.ts
+++ b/src/lib/Utility/appOrigin.ts
@@ -23,10 +23,20 @@ export const appOrigin = () => {
return dev ? LOCAL_ORIGIN : PRODUCTION_ORIGIN;
};
+export const siteUrl = (path = "/") =>
+ `${appOrigin()}${path.startsWith("/") ? path : `/${path}`}`;
+
export const isLocalApp = () => {
const { hostname } = new URL(appOrigin());
return dev || isPrivateHostname(hostname);
};
+export const appOriginHeaders = (
+ headers: Record<string, string> = {},
+): Record<string, string> => ({
+ ...headers,
+ "Access-Control-Allow-Origin": appOrigin(),
+});
+
export { LOCAL_ORIGIN, PRODUCTION_ORIGIN };