You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
634 B
23 lines
634 B
const parse = require('./parse') |
|
const eq = require('./eq') |
|
|
|
const diff = (version1, version2) => { |
|
if (eq(version1, version2)) { |
|
return null |
|
} else { |
|
const v1 = parse(version1) |
|
const v2 = parse(version2) |
|
const hasPre = v1.prerelease.length || v2.prerelease.length |
|
const prefix = hasPre ? 'pre' : '' |
|
const defaultResult = hasPre ? 'prerelease' : '' |
|
for (const key in v1) { |
|
if (key === 'major' || key === 'minor' || key === 'patch') { |
|
if (v1[key] !== v2[key]) { |
|
return prefix + key |
|
} |
|
} |
|
} |
|
return defaultResult // may be undefined |
|
} |
|
} |
|
module.exports = diff
|
|
|