Skip to content

Commit 30b0867

Browse files
authored
Merge pull request #4 from lancefisher/fix-join-set
Handle ranges of peer dependencies
2 parents 3bbfe29 + ac374b2 commit 30b0867

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/installPeerDeps.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,13 @@ function installPeerDeps({ packageName, version, packageManager, dev, silent },
9898
// Construct packages string with correct versions for install
9999
let packagesString = `${packageName}`;
100100
Object.keys(peerDepsVersionMap).forEach((depName) => {
101-
packagesString += ` ${depName}@${peerDepsVersionMap[depName]}`;
101+
const range = peerDepsVersionMap[depName];
102+
// Semver ranges can have a join of comparator sets
103+
// e.g. '^3.0.2 || ^4.0.0' or '>=1.2.7 <1.3.0'
104+
// We just take the last comparator in the set
105+
const rangeSplit = range.split(' ');
106+
const lastComparator = rangeSplit[rangeSplit.length - 1];
107+
packagesString += ` ${depName}@${lastComparator}`;
102108
});
103109
// Construct command based on package manager of current project
104110
const subcommand = packageManager === C.yarn ? 'add' : 'install';

0 commit comments

Comments
 (0)