11import type { APIEvent } from "@solidjs/start"
22import type { DownloadPlatform } from "../types"
33
4- const assetNames : Record < string , string > = {
4+ const prodAssetNames : Record < string , string > = {
55 "darwin-aarch64-dmg" : "opencode-desktop-darwin-aarch64.dmg" ,
66 "darwin-x64-dmg" : "opencode-desktop-darwin-x64.dmg" ,
77 "windows-x64-nsis" : "opencode-desktop-windows-x64.exe" ,
@@ -10,6 +10,15 @@ const assetNames: Record<string, string> = {
1010 "linux-x64-rpm" : "opencode-desktop-linux-x86_64.rpm" ,
1111} satisfies Record < DownloadPlatform , string >
1212
13+ const betaAssetNames : Record < string , string > = {
14+ "darwin-aarch64-dmg" : "opencode-electron-mac-arm64.dmg" ,
15+ "darwin-x64-dmg" : "opencode-electron-mac-x64.dmg" ,
16+ "windows-x64-nsis" : "opencode-electron-win-x64.exe" ,
17+ "linux-x64-deb" : "opencode-electron-linux-amd64.deb" ,
18+ "linux-x64-appimage" : "opencode-electron-linux-x86_64.AppImage" ,
19+ "linux-x64-rpm" : "opencode-electron-linux-x86_64.rpm" ,
20+ } satisfies Record < DownloadPlatform , string >
21+
1322// Doing this on the server lets us preserve the original name for platforms we don't care to rename for
1423const downloadNames : Record < string , string > = {
1524 "darwin-aarch64-dmg" : "OpenCode Desktop.dmg" ,
@@ -18,7 +27,7 @@ const downloadNames: Record<string, string> = {
1827} satisfies { [ K in DownloadPlatform ] ?: string }
1928
2029export async function GET ( { params : { platform, channel } } : APIEvent ) {
21- const assetName = assetNames [ platform ]
30+ const assetName = channel === "stable" ? prodAssetNames [ platform ] : betaAssetNames [ platform ]
2231 if ( ! assetName ) return new Response ( null , { status : 404 } )
2332
2433 const resp = await fetch (
0 commit comments