Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sturmenta/8a1c5ea2d2b33cd25eee44601205bb59 to your computer and use it in GitHub Desktop.
Save sturmenta/8a1c5ea2d2b33cd25eee44601205bb59 to your computer and use it in GitHub Desktop.
check version "A" is greater or equal than version "B"
export const checkVersionAIsGreaterOrEqualThanVersionB = ({
versionA,
versionB,
}: {
versionA: string; // 1.2.3
versionB: string; // 1.2.3
}): boolean => {
const _versionA = {
major: parseInt(versionA.split('.')[0], 10), // 1.2.3 -> 1
minor: parseInt(versionA.split('.')[1].split('.')[0], 10), // 1.2.3 -> 2
patch: parseInt(versionA.split('.')[2].split('.')[0], 10), // 1.2.3 -> 3
};
const _versionB = {
major: parseInt(versionB.split('.')[0], 10), // 1.2.3 -> 1
minor: parseInt(versionB.split('.')[1].split('.')[0], 10), // 1.2.3 -> 2
patch: parseInt(versionB.split('.')[2].split('.')[0], 10), // 1.2.3 -> 3
};
// 1.x.x === 1.x.x
if (_versionA.major === _versionB.major) {
// ─────────────────────────────────────────────────────────────────────────────
// x.1.x === x.1.x
if (_versionA.minor === _versionB.minor) {
// ───────────────────────────────────────────────────────────────────────────
return _versionA.patch >= _versionB.patch; // x.x.3 >= x.x.3
// ───────────────────────────────────────────────────────────────────────────
} else return _versionA.minor > _versionB.minor; // x.2.x > x.2.x
// ─────────────────────────────────────────────────────────────────────────────
} else return _versionA.major > _versionB.major; // 1.x.x > 1.x.x
};
@sturmenta
Copy link
Author

this also work 1 * 10000 + 2 * 100 + 3 = 10.203

works but limit every [ major | minor | patch ] version to max 99

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment