36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
export type Version = [string, string, string]
|
|
|
|
export class VersionUtils {
|
|
static isEqual(version: string, targetVersion: string): boolean {
|
|
return version == targetVersion
|
|
}
|
|
static isGreaterOrEqual(version: string, targetVersion: string): boolean {
|
|
const v1 = parseVersion(version)
|
|
const v2 = parseVersion(targetVersion)
|
|
|
|
return (
|
|
v1[0] > v2[0] ||
|
|
(v1[0] === v2[0] && v1[1] > v2[1]) ||
|
|
(v1[0] === v2[0] && v1[1] === v2[1] && v1[2] >= v2[2])
|
|
)
|
|
}
|
|
static isGreater(version: string, targetVersion: string): boolean {
|
|
const v1 = parseVersion(version)
|
|
const v2 = parseVersion(targetVersion)
|
|
|
|
return (
|
|
v1[0] > v2[0] ||
|
|
(v1[0] === v2[0] && v1[1] > v2[1]) ||
|
|
(v1[0] === v2[0] && v1[1] === v2[1] && v1[2] > v2[2])
|
|
)
|
|
}
|
|
}
|
|
|
|
function parseVersion(version: string = ""): Version {
|
|
const v: Version = ['0', '0', '0']
|
|
|
|
version.split(".").forEach((value, i) => (v[i] = value))
|
|
|
|
return v
|
|
}
|