35
									
								
								packages/common/src/version.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								packages/common/src/version.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
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
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user