evcc-io/assets/js/utils/version.ts

32 lines
1,004 B
TypeScript

export function isDevelopment(version: string): boolean {
return version === "0.0.0";
}
// untagged builds are pre-releases carrying the build timestamp: 0.304.0-dev.1712345678
export function isNightly(version: string): boolean {
return version.includes("-dev.");
}
export function getReleaseName(version: string): string {
if (isDevelopment(version)) return "development";
if (isNightly(version)) return "nightly";
return "stable";
}
export function getShortVersion(version: string): string {
if (isDevelopment(version)) return "dev build";
return `v${version}`;
}
export function isNewVersionAvailable(installed?: string, available?: string): boolean {
const v = installed || "";
return !!available && !isDevelopment(v) && !isNightly(v) && available !== installed;
}
export function isNewVersionUnacknowledged(
installed?: string,
available?: string,
acknowledged?: string
): boolean {
return isNewVersionAvailable(installed, available) && available !== acknowledged;
}