29 lines
656 B
JavaScript
29 lines
656 B
JavaScript
"use strict";
|
|
|
|
var parse = require('./parse');
|
|
|
|
var eq = require('./eq');
|
|
|
|
var diff = function diff(version1, version2) {
|
|
if (eq(version1, version2)) {
|
|
return null;
|
|
} else {
|
|
var v1 = parse(version1);
|
|
var v2 = parse(version2);
|
|
var hasPre = v1.prerelease.length || v2.prerelease.length;
|
|
var prefix = hasPre ? 'pre' : '';
|
|
var defaultResult = hasPre ? 'prerelease' : '';
|
|
|
|
for (var 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; |