Files
verdaccio-cache-manager/backend/semver.js
T

23 lines
551 B
JavaScript
Raw Normal View History

/**
* semver 数值比较(轻量实现,无第三方依赖)
* 支持 v 前缀与 prerelease 后缀(仅比较主版本号主体)
*/
export default function compare(a, b) {
const pa = parse(a)
const pb = parse(b)
for (let i = 0; i < 3; i++) {
if (pa[i] !== pb[i]) return pa[i] - pb[i]
}
return 0
}
function parse(v) {
const main = String(v).replace(/^v/, '').split(/[-+]/)[0]
const parts = main.split('.')
return [
parseInt(parts[0], 10) || 0,
parseInt(parts[1], 10) || 0,
parseInt(parts[2], 10) || 0,
]
}