add version check validation

This commit is contained in:
yogesh_gohil
2020-11-05 19:02:55 +05:30
parent 5d4ea2a308
commit 4484765358
4 changed files with 379 additions and 307 deletions

View File

@ -182,4 +182,40 @@ export default {
}
)
},
compareVersion(v1, v2, options) {
const lexicographical = options && options.lexicographical
const zeroExtend = options && options.zeroExtend
let v1parts = v1.split('.')
let v2parts = v2.split('.')
function isValidPart(x) {
return (lexicographical ? /^\d+[A-Za-z]*$/ : /^\d+$/).test(x)
}
if (!v1parts.every(isValidPart) || !v2parts.every(isValidPart)) {
return NaN
}
if (zeroExtend) {
while (v1parts.length < v2parts.length) v1parts.push('0')
while (v2parts.length < v1parts.length) v2parts.push('0')
}
if (!lexicographical) {
v1parts = v1parts.map(Number)
v2parts = v2parts.map(Number)
}
for (let i = 0; i < v1parts.length; ++i) {
if (v2parts.length == i) {
return 1
}
if (v1parts[i] == v2parts[i]) {
continue
} else if (v1parts[i] > v2parts[i]) {
return 1
} else {
return -1
}
}
if (v1parts.length != v2parts.length) {
return -1
}
return 0
},
}