refraction/src/utils/remoteVersions.ts
2022-06-15 08:25:47 +08:00

28 lines
692 B
TypeScript

interface MetaPackage {
formatVersion: number;
name: string;
recommended: string[];
uid: string;
}
interface SimplifiedGHReleases {
tag_name: string;
}
// TODO: caching
export async function getLatestMinecraftVersion(): Promise<string> {
const f = await fetch(
'https://meta.polymc.org/v1/net.minecraft/package.json'
);
const minecraft = (await f.json()) as MetaPackage;
return minecraft.recommended[0];
}
// TODO: caching
export async function getLatestPolyMCVersion(): Promise<string> {
const f = await fetch('https://api.github.com/repos/PolyMC/PolyMC/releases');
const versions = (await f.json()) as SimplifiedGHReleases[];
return versions[0].tag_name;
}