js/utils/compare-version.js
/**
* @file compare-version.js
* @since 3.8.0
*/
/**
* Compare 2 version number strings.
*
* @param {string} v1 - First version number to compare.
* @param {string} v2 - Second version number to compare.
* @returns {number} - Returns 0 if versions are equal,
* 1 if `v1` is greater, and -1 if `v2` is smaller.
*/
const compareVersion = function(v1, v2) {
if (typeof v1 !== 'string') return false;
if (typeof v2 !== 'string') return false;
v1 = v1.split('.');
v2 = v2.split('.');
const k = Math.min(v1.length, v2.length);
let i = 0;
for (i; i < k; ++ i) {
// buddy ignore:start
v1[i] = parseInt(v1[i], 10);
v2[i] = parseInt(v2[i], 10);
// buddy ignore:end
if (v1[i] > v2[i]) return 1;
if (v1[i] < v2[i]) return -1;
}
return v1.length === v2.length ? 0 : (v1.length < v2.length ? -1 : 1);
};
export default compareVersion;