continuwuity/packages/website/src/lib/GhReleasesDownload.svelte
2024-05-03 14:50:33 +01:00

32 lines
1.2 KiB
Svelte

<script lang="ts">
import type { Endpoints } from "@octokit/types";
export let releaseData: Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["response"]["data"];
import { browser } from '$app/environment';
// console.log(releaseData);
</script>
<div class="release">
{#if browser && navigator}
{#if navigator.platform.startsWith("Win")}
{@const asset =releaseData.assets.filter((a) => a.name.endsWith(".exe"))[0]}
{#if asset}
<a href={asset.browser_download_url}>Download for Windows</a>
{/if}
{:else if navigator.platform.startsWith("Mac")}
{@const asset =releaseData.assets.filter((a) => a.name.endsWith(".dmg"))[0]}
{#if asset}
<a href={asset.browser_download_url}>Download for MacOS</a>
{/if}
{:else if navigator.platform.startsWith("Linux")}
{@const asset =releaseData.assets.filter((a) => a.name.endsWith(".AppImage"))[0]}
{#if asset}
<a href={asset.browser_download_url}>Download AppImage</a>
{/if}
{/if}
<!-- {:else} -->
{/if}
<p>Latest release: <a href={releaseData.html_url}>{releaseData.name}</a></p>
</div>