Files
app.zeusln.zeus/utils/VersionUtils.ts
T
2021-03-07 13:02:48 -05:00

47 lines
1.5 KiB
TypeScript

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, targetVersion: string) => {
const user = this.parseVersion(userVersion);
const target = this.parseVersion(targetVersion);
if (
(user.coreVersion || target.coreVersion) &&
user.coreVersion > target.coreVersion
) {
return true;
} else if (
(user.mainVersion || target.mainVersion) &&
user.coreVersion === target.coreVersion &&
user.mainVersion > target.mainVersion
) {
return true;
} else if (
(user.minorVersion || target.minorVersion) &&
user.coreVersion === target.coreVersion &&
user.mainVersion === target.mainVersion &&
user.minorVersion >= target.minorVersion
) {
return true;
}
return false;
};
}
const versionUtils = new VersionUtils();
export default versionUtils;