mcgrizz/util/gameVersions.ts

19 lines
581 B
TypeScript

import { ensureFile } from "$std/fs/ensure_file.ts";
import { Modrinth, ModrinthGameVersion } from "../lib/modrinth.ts";
export const getGameVersions = async (releaseOnly?: boolean) => {
const cacheFile = "./cache/gameVersions.json";
await ensureFile(cacheFile);
let versions: ModrinthGameVersion[] = JSON.parse(
await Deno.readTextFile(cacheFile) || "[]",
);
if (!versions.length) {
versions = await Modrinth.getGameVersions();
await Deno.writeTextFile(cacheFile, JSON.stringify(versions));
}
return versions.filter(v => !releaseOnly || v.major);
};