summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBrendan Allan <[email protected]>2025-12-18 00:59:16 +0800
committerBrendan Allan <[email protected]>2025-12-18 00:59:16 +0800
commitbe1a3536ae23c0abff733f71c42d2f650fabdf17 (patch)
treefcd891d472535bdefefa4487346be917fb341d11
parent1e4bfbcf6f67baa0f05ef62418b229188225ac48 (diff)
downloadopencode-be1a3536ae23c0abff733f71c42d2f650fabdf17.tar.gz
opencode-be1a3536ae23c0abff733f71c42d2f650fabdf17.zip
console: add /download/[platform] endpoint
-rw-r--r--packages/console/app/src/routes/download/[platform].ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/packages/console/app/src/routes/download/[platform].ts b/packages/console/app/src/routes/download/[platform].ts
new file mode 100644
index 000000000..bb0560ca0
--- /dev/null
+++ b/packages/console/app/src/routes/download/[platform].ts
@@ -0,0 +1,20 @@
+import { APIEvent } from "@solidjs/start";
+
+const assetNames: Record<string, string> = {
+ "darwin-aarch64-dmg": "opencode-desktop-darwin-aarch64.dmg",
+ "windows-x64-nsis": "opencode-desktop-windows-x64.exe",
+ "linux-x64-deb": "opencode-desktop-linux-amd64.deb",
+ "linux-x64-rpm": "opencode-desktop-linux-x86_64.rpm"
+}
+
+export async function GET({ params: { platform } }: APIEvent) {
+ const assetName = assetNames[platform];
+ if(!assetName) return new Response("Not Found", { status: 404 });
+
+ return await fetch(`https://github.com/sst/opencode/releases/latest/download/${assetName}`, {
+ cf: {
+ cacheTtl: 60 * 60 * 24,
+ cacheEverything: true,
+ }
+ } as any)
+}