Skip to content

Commit 7b33387

Browse files
authored
Merge pull request #761 from emberjs/use-validate-peer-dependencies
Migrate to validate-peer-dependencies.
2 parents 57c3327 + d0f3909 commit 7b33387

File tree

3 files changed

+23
-48
lines changed

3 files changed

+23
-48
lines changed

index.js

+4-45
Original file line numberDiff line numberDiff line change
@@ -3,38 +3,9 @@
33

44
const path = require('path');
55
const resolvePackagePath = require('resolve-package-path');
6-
const semver = require('semver');
7-
const SilentError = require('silent-error');
86
const stripIndent = require('common-tags').stripIndent;
97

10-
// avoid checking multiple times from the same location
11-
let HAS_PEER_DEPS_INSTALLED = new Map();
12-
function hasPeerDependenciesInstalled(parentRoot) {
13-
if (HAS_PEER_DEPS_INSTALLED.has(parentRoot)) {
14-
return HAS_PEER_DEPS_INSTALLED.get(parentRoot);
15-
}
16-
17-
let peerDependencies = require('./package').peerDependencies;
18-
19-
for (let packageName in peerDependencies) {
20-
let minimumVersion = peerDependencies[packageName].substring(1);
21-
22-
let packagePath = resolvePackagePath(packageName, parentRoot);
23-
if (packagePath === null) {
24-
HAS_PEER_DEPS_INSTALLED.set(parentRoot, false);
25-
return false;
26-
}
27-
28-
let packageVersion = require(packagePath).version;
29-
if (semver.lt(packageVersion, minimumVersion)) {
30-
HAS_PEER_DEPS_INSTALLED.set(parentRoot, false);
31-
return false;
32-
}
33-
}
34-
35-
HAS_PEER_DEPS_INSTALLED.set(parentRoot, true);
36-
return true;
37-
}
8+
const validatePeerDependencies = require('validate-peer-dependencies');
389

3910
module.exports = {
4011
name: 'ember-qunit',
@@ -48,21 +19,9 @@ module.exports = {
4819
included() {
4920
this._super.included.apply(this, arguments);
5021

51-
if (!hasPeerDependenciesInstalled(this.parent.root)) {
52-
let peerDependencies = require('./package').peerDependencies;
53-
let packages = Object.keys(peerDependencies).map(
54-
(name) => `"${name}@${peerDependencies[name]}"`
55-
);
56-
let hasYarnLock = this.project.has('yarn.lock');
57-
58-
let installMessage = `${
59-
hasYarnLock ? 'yarn add' : 'npm install'
60-
} --dev ${packages.join(' ')}`;
61-
62-
throw new SilentError(
63-
`ember-qunit now requires that \`qunit\` and \`@ember/test-helpers\` are \`devDependencies\` of the project. Please run:\n\t${installMessage}`
64-
);
65-
}
22+
validatePeerDependencies(__dirname, {
23+
resolvePackagePathFrom: this.parent.root,
24+
});
6625

6726
// TODO: figure out how to make this not needed, AFAICT ember-auto-import
6827
// does not provide any ability to import styles

package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@
3737
"ember-auto-import": "^1.6.0",
3838
"ember-cli-babel": "^7.22.1",
3939
"ember-cli-test-loader": "^3.0.0",
40-
"resolve-package-path": "^2.0.0",
41-
"semver": "^7.3.2",
42-
"silent-error": "^1.1.1"
40+
"resolve-package-path": "^3.1.0",
41+
"silent-error": "^1.1.1",
42+
"validate-peer-dependencies": "^1.0.0"
4343
},
4444
"devDependencies": {
4545
"@ember/test-helpers": "^2.0.0-beta.6",

yarn.lock

+16
Original file line numberDiff line numberDiff line change
@@ -9852,6 +9852,14 @@ resolve-package-path@^2.0.0:
98529852
path-root "^0.1.1"
98539853
resolve "^1.13.1"
98549854

9855+
resolve-package-path@^3.1.0:
9856+
version "3.1.0"
9857+
resolved "https://registry.yarnpkg.com/resolve-package-path/-/resolve-package-path-3.1.0.tgz#35faaa5d54a9c7dd481eb7c4b2a44410c9c763d8"
9858+
integrity sha512-2oC2EjWbMJwvSN6Z7DbDfJMnD8MYEouaLn5eIX0j8XwPsYCVIyY9bbnX88YHVkbr8XHqvZrYbxaLPibfTYKZMA==
9859+
dependencies:
9860+
path-root "^0.1.1"
9861+
resolve "^1.17.0"
9862+
98559863
resolve-path@^1.4.0:
98569864
version "1.4.0"
98579865
resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7"
@@ -11434,6 +11442,14 @@ validate-npm-package-name@^3.0.0:
1143411442
dependencies:
1143511443
builtins "^1.0.3"
1143611444

11445+
validate-peer-dependencies@^1.0.0:
11446+
version "1.0.0"
11447+
resolved "https://registry.yarnpkg.com/validate-peer-dependencies/-/validate-peer-dependencies-1.0.0.tgz#d82f1c2020eef96d331723c2cef15de94063adf3"
11448+
integrity sha512-9T1pR9gopOuQYDMT0ApUPiRt1MOsSCJUm56mr55Hy7RDx7dyFHa6SnEXVP5wJuFyJ8pWyZoYxfFo4raEspRbUg==
11449+
dependencies:
11450+
resolve-package-path "^3.1.0"
11451+
semver "^7.3.2"
11452+
1143711453
vary@~1.1.2:
1143811454
version "1.1.2"
1143911455
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"

0 commit comments

Comments
 (0)