Files
native/src/lib/version-compare.ts
T

18 lines
595 B
TypeScript

export function parseVersion(v: string): [number, number, number] {
const cleaned = v.replace(/^v/, '').split(/[-+]/)[0];
const parts = cleaned.split('.').map((n) => parseInt(n, 10));
return [parts[0] || 0, parts[1] || 0, parts[2] || 0];
}
export function compareVersions(a: string, b: string): number {
const [a1, a2, a3] = parseVersion(a);
const [b1, b2, b3] = parseVersion(b);
if (a1 !== b1) return a1 - b1;
if (a2 !== b2) return a2 - b2;
return a3 - b3;
}
export function isNewer(latest: string, current: string): boolean {
return compareVersions(latest, current) > 0;
}