three-way-merger
Advanced tools
Comparing version
var Merger = require('./lib/three-way-merger'); | ||
module.exports = Merger; |
@@ -0,0 +0,0 @@ /** |
@@ -0,1 +1,22 @@ | ||
var Range = require('semver').Range; | ||
// matches "^1.0.0" but not "^1.0.0 || ^3.0.0" or "1.0" | ||
function hasSimpleHint(rangeString) { | ||
var range = new Range(rangeString); | ||
var isSimpleRange = range.set.length === 1 && range.set[0].length === 2; | ||
return isSimpleRange && !!getHint(rangeString); | ||
} | ||
// matches "1.0.0" and "1.0" but not "^1.0.0" | ||
function hasNoHint(rangeString) { | ||
var range = new Range(rangeString); | ||
var isPinned = range.set.length === 1 && range.set[0].length === 1; | ||
return isPinned || !getHint(rangeString); | ||
} | ||
function getHint(rangeString) { | ||
var matches = rangeString.match(/^ *[\^~]/); | ||
return matches && matches[0]; | ||
} | ||
/** | ||
@@ -14,2 +35,13 @@ * A dependency "diff". | ||
this.fromVersion = options.fromVersion; | ||
if (dependency.fromVersion && hasSimpleHint(options.fromVersion)) { | ||
let ourHint = getHint(options.fromVersion); | ||
if (hasNoHint(dependency.fromVersion) && hasNoHint(dependency.version)) { | ||
this.version = `${ourHint}${dependency.version}`; | ||
} | ||
if (hasSimpleHint(dependency.fromVersion) && hasSimpleHint(dependency.version) | ||
&& getHint(dependency.fromVersion) === getHint(dependency.version)) { | ||
this.version = dependency.version.replace(/[\^~]/, ourHint); | ||
} | ||
} | ||
} | ||
@@ -16,0 +48,0 @@ }; |
@@ -0,0 +0,0 @@ module.exports = [ |
@@ -0,0 +0,0 @@ var DependencyDescriptor = require('./dependency-descriptor'); |
@@ -0,0 +0,0 @@ // Diff dependency sets |
@@ -0,0 +0,0 @@ 'use strict'; |
@@ -0,0 +0,0 @@ 'use strict'; |
@@ -0,0 +0,0 @@ 'use strict'; |
@@ -0,0 +0,0 @@ var DependencySet = require('./dependency-set'); |
@@ -0,0 +0,0 @@ var Merge = require('./merge'); |
{ | ||
"name": "three-way-merger", | ||
"version": "0.5.7", | ||
"version": "0.6.0", | ||
"description": "Merges package.json files", | ||
@@ -24,4 +24,4 @@ "main": "index.js", | ||
"chai": "^4.1.2", | ||
"eslint-config-google": "^0.11.0", | ||
"mocha": "^5.0.0" | ||
"eslint-config-google": "^0.13.0", | ||
"mocha": "^6.2.2" | ||
}, | ||
@@ -28,0 +28,0 @@ "files": [ |
@@ -0,0 +0,0 @@ # three-way-merger |
13209
14.21%325
9.06%