Details of the newer release, or undefined when up to date (or when
the check couldn't complete).
// running 1.2.0, latest release tagged v1.3.0
await getAvailableUpdate();
// { version: "1.3.0", releaseUrl: "https://github.com/…", notes: [{ title: "Added", … }] }
// running 1.3.0
await getAvailableUpdate(); // undefined
export async function getAvailableUpdate(): Promise<UpdateInfo | undefined> {
const release = await getLatestRelease();
if (!release || release.draft || release.prerelease) return undefined;
const version = normalizeTag(release.tag_name);
if (!version || semver.prerelease(version) !== null) return undefined;
if (!semver.gt(version, __APP_VERSION__)) return undefined;
return {
version,
releaseUrl: release.html_url,
notes: parseReleaseNotes(release.body ?? undefined),
};
}
Checks whether a stable release newer than the running build is available. Drafts and pre-releases are ignored, as are tags that aren't valid semver.