| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import type { APIEvent } from "@solidjs/start/server"
- import { Resource } from "@opencode-ai/console-resource"
- export async function statsProxy(evt: APIEvent) {
- const req = evt.request.clone()
- const targetUrl = new URL(req.url)
- targetUrl.protocol = "https:"
- targetUrl.hostname = Resource.App.stage === "production" ? "stats.opencode.ai" : "stats.dev.opencode.ai"
- targetUrl.port = ""
- if (targetUrl.pathname.startsWith("/stats/_build/")) {
- targetUrl.pathname = targetUrl.pathname.slice("/stats".length)
- }
- const response = await fetch(targetUrl, {
- method: req.method,
- headers: req.headers,
- body: req.body,
- })
- if (!response.headers.get("content-type")?.includes("text/html")) return response
- const headers = new Headers(response.headers)
- headers.delete("content-encoding")
- headers.delete("content-length")
- headers.delete("etag")
- return new Response(rewriteStatsHtml(await response.text()), {
- status: response.status,
- statusText: response.statusText,
- headers,
- })
- }
- function rewriteStatsHtml(html: string) {
- return html
- .replaceAll("\"/_build/", "\"/stats/_build/")
- .replaceAll("'/_build/", "'/stats/_build/")
- }
|