Files
continuwuity/packages/website/src/lib/GhReleasesDownload.svelte
T

40 lines
1.5 KiB
Svelte
Raw Normal View History

2024-05-03 14:37:50 +01:00
<script lang="ts">
import type { Endpoints } from "@octokit/types";
export let releaseData: Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["response"]["data"];
2024-07-16 19:42:18 +01:00
import { browser } from "$app/environment";
2024-05-03 14:37:50 +01:00
// console.log(releaseData);
</script>
<div class="release">
2024-07-16 22:01:59 +01:00
{#if releaseData?.assets && browser && navigator}
2024-05-03 14:37:50 +01:00
{#if navigator.platform.startsWith("Win")}
2024-07-16 19:42:18 +01:00
{@const asset = (releaseData?.assets || []).filter((a) =>
a.name.endsWith(".exe"),
)[0]}
2024-05-03 14:37:50 +01:00
{#if asset}
<a href={asset.browser_download_url}>Download for Windows</a>
{/if}
{:else if navigator.platform.startsWith("Mac")}
2024-07-16 19:42:18 +01:00
{@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") && navigator.platform.includes("x86_64")}
2024-07-16 19:42:18 +01:00
{@const asset = (releaseData?.assets || []).filter((a) =>
a.name.endsWith(".AppImage"),
)[0]}
{#if asset}
<a href={asset.browser_download_url}>Download AppImage</a>
{/if}
2024-07-16 22:01:59 +01:00
{:else}
<span>No download found for your device</span>
2024-05-03 14:37:50 +01:00
{/if}
2024-07-16 22:01:59 +01:00
{:else if releaseData?.assets}
<span>Finding download for your device</span>
2024-05-03 14:37:50 +01:00
{/if}
<p>Latest release: <a href={releaseData.html_url}>{releaseData.name}</a></p>
</div>