-
-
Notifications
You must be signed in to change notification settings - Fork 159
/
Copy pathVersionUtils.ts
71 lines (63 loc) · 2.15 KB
/
VersionUtils.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
class VersionUtils {
parseVersion = (text: string) => {
const [version, suffix] = text.split('-');
const releaseVersion = suffix ? text.replace(`${version}-`, '') : null;
const noPrefix = version.replace('v', '').replace('V', '');
const [coreVersion, mainVersion, minorVersion] = noPrefix.split('.');
return {
coreVersion: coreVersion ? Number(coreVersion) : 0,
mainVersion: mainVersion ? Number(mainVersion) : 0,
minorVersion: minorVersion ? Number(minorVersion) : 0,
releaseVersion
};
};
isSupportedVersion = (
userVersion: string,
minVersion: string,
eosVersion?: string
) => {
const user = userVersion
? this.parseVersion(userVersion)
: { coreVersion: 0, mainVersion: 0, minorVersion: 0 };
const min = minVersion
? this.parseVersion(minVersion)
: { coreVersion: 0, mainVersion: 0, minorVersion: 0 };
if (user.coreVersion < min.coreVersion) {
return false;
}
if (
user.coreVersion == min.coreVersion &&
user.mainVersion < min.mainVersion
) {
return false;
}
if (
user.coreVersion == min.coreVersion &&
user.mainVersion == min.mainVersion &&
user.minorVersion < min.minorVersion
) {
return false;
}
// end of support version
if (eosVersion) {
const eos = this.parseVersion(eosVersion);
if (eos.coreVersion < user.coreVersion) {
return false;
} else if (
eos.coreVersion == user.coreVersion &&
eos.mainVersion < user.mainVersion
) {
return false;
} else if (
eos.coreVersion == user.coreVersion &&
eos.mainVersion == user.mainVersion &&
eos.minorVersion < user.minorVersion
) {
return false;
}
}
return true;
};
}
const versionUtils = new VersionUtils();
export default versionUtils;