2019-06-03 12:19:00 +00:00
|
|
|
import semver from 'semver'
|
2018-08-06 16:30:28 +00:00
|
|
|
|
2019-07-18 08:55:25 +00:00
|
|
|
export default (v1: any, v2: any) => {
|
|
|
|
v1 = semver.coerce(String(v1))
|
|
|
|
v2 = semver.coerce(String(v2))
|
2018-08-06 16:30:28 +00:00
|
|
|
|
2019-07-18 08:55:25 +00:00
|
|
|
const isV1Valid = v1 !== null && !!semver.valid(v1)
|
|
|
|
const isV2Valid = v2 !== null && !!semver.valid(v2)
|
2018-08-06 16:30:28 +00:00
|
|
|
|
|
|
|
if (isV1Valid && isV2Valid) {
|
2019-07-18 08:55:25 +00:00
|
|
|
return semver.compare(v1, v2)
|
2018-08-06 16:30:28 +00:00
|
|
|
}
|
|
|
|
|
2019-07-18 08:55:25 +00:00
|
|
|
if (isV1Valid) {
|
2018-08-06 16:30:28 +00:00
|
|
|
return 1
|
|
|
|
}
|
2019-07-18 08:55:25 +00:00
|
|
|
if (!isV2Valid) {
|
2018-08-06 16:30:28 +00:00
|
|
|
return -1
|
|
|
|
}
|
|
|
|
|
|
|
|
return v1.localeCompare(v2)
|
|
|
|
}
|