adamelmore 3 недель назад
Родитель
Сommit
3fdd08d66e

+ 15 - 0
packages/console/app/src/routes/changelog.json.ts

@@ -20,6 +20,12 @@ type HighlightGroup = {
   items: HighlightItem[]
 }
 
+const cors = {
+  "Access-Control-Allow-Origin": "*",
+  "Access-Control-Allow-Methods": "GET, OPTIONS",
+  "Access-Control-Allow-Headers": "Content-Type, Authorization",
+}
+
 const ok = "public, max-age=1, s-maxage=300, stale-while-revalidate=86400, stale-if-error=86400"
 const error = "public, max-age=1, s-maxage=60, stale-while-revalidate=600, stale-if-error=86400"
 
@@ -106,6 +112,7 @@ export async function GET() {
       headers: {
         "Content-Type": "application/json",
         "Cache-Control": error,
+        ...cors,
       },
     })
 
@@ -134,7 +141,15 @@ export async function GET() {
       headers: {
         "Content-Type": "application/json",
         "Cache-Control": ok,
+        ...cors,
       },
     },
   )
 }
+
+export async function OPTIONS() {
+  return new Response(null, {
+    status: 200,
+    headers: cors,
+  })
+}

+ 7 - 3
packages/console/app/src/routes/changelog/index.tsx

@@ -31,11 +31,15 @@ type ChangelogRelease = {
   sections: { title: string; items: string[] }[]
 }
 
-async function getReleases() {
+function endpoint() {
   const event = getRequestEvent()
-  const url = event ? new URL("/changelog.json", event.request.url).toString() : "/changelog.json"
+  if (event) return new URL("/changelog.json", event.request.url).toString()
+  if (!import.meta.env.SSR) return "/changelog.json"
+  return `${config.baseUrl}/changelog.json`
+}
 
-  const response = await fetch(url).catch(() => undefined)
+async function getReleases() {
+  const response = await fetch(endpoint()).catch(() => undefined)
   if (!response?.ok) return []
 
   const json = await response.json().catch(() => undefined)