Improve error handling in gh download

This commit is contained in:
Jade Ellis
2024-07-16 19:42:18 +01:00
parent 792d6af652
commit 3b3cabb1b6
@@ -2,31 +2,35 @@
import type { Endpoints } from "@octokit/types"; import type { Endpoints } from "@octokit/types";
export let releaseData: Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["response"]["data"]; export let releaseData: Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["response"]["data"];
import { browser } from '$app/environment'; import { browser } from "$app/environment";
// console.log(releaseData); // console.log(releaseData);
</script> </script>
<div class="release"> <div class="release">
{#if browser && navigator} {#if browser && navigator}
{#if navigator.platform.startsWith("Win")} {#if navigator.platform.startsWith("Win")}
{@const asset =releaseData.assets.filter((a) => a.name.endsWith(".exe"))[0]} {@const asset = (releaseData?.assets || []).filter((a) =>
a.name.endsWith(".exe"),
)[0]}
{#if asset} {#if asset}
<a href={asset.browser_download_url}>Download for Windows</a> <a href={asset.browser_download_url}>Download for Windows</a>
{/if} {/if}
{:else if navigator.platform.startsWith("Mac")} {:else if navigator.platform.startsWith("Mac")}
{@const asset =releaseData.assets.filter((a) => a.name.endsWith(".dmg"))[0]} {@const asset = (releaseData?.assets || []).filter((a) =>
{#if asset} a.name.endsWith(".dmg"),
<a href={asset.browser_download_url}>Download for MacOS</a> )[0]}
{/if} {#if asset}
<a href={asset.browser_download_url}>Download for MacOS</a>
{/if}
{:else if navigator.platform.startsWith("Linux") && navigator.platform.includes("x86_64")} {:else if navigator.platform.startsWith("Linux") && navigator.platform.includes("x86_64")}
{@const asset = (releaseData?.assets || []).filter((a) =>
{@const asset =releaseData.assets.filter((a) => a.name.endsWith(".AppImage"))[0]} a.name.endsWith(".AppImage"),
{#if asset} )[0]}
<a href={asset.browser_download_url}>Download AppImage</a> {#if asset}
<a href={asset.browser_download_url}>Download AppImage</a>
{/if}
{/if} {/if}
{/if} <!-- {:else} -->
<!-- {:else} -->
{/if} {/if}
<p>Latest release: <a href={releaseData.html_url}>{releaseData.name}</a></p> <p>Latest release: <a href={releaseData.html_url}>{releaseData.name}</a></p>
</div> </div>