check-peer-dependencies 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/workspace.xml +10 -7
- package/CHANGELOG.md +11 -0
- package/README.md +17 -5
- package/dist/checkPeerDependencies.js +24 -16
- package/dist/cli.js +8 -0
- package/package.json +1 -1
package/.idea/workspace.xml
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<project version="4">
|
|
3
|
+
<component name="AutoImportSettings">
|
|
4
|
+
<option name="autoReloadType" value="SELECTIVE" />
|
|
5
|
+
</component>
|
|
3
6
|
<component name="BranchesTreeState">
|
|
4
7
|
<expand>
|
|
5
8
|
<path>
|
|
@@ -19,7 +22,11 @@
|
|
|
19
22
|
<select />
|
|
20
23
|
</component>
|
|
21
24
|
<component name="ChangeListManager">
|
|
22
|
-
<list default="true" id="ebeb713d-6dc4-42d1-a42e-54aad95d9c0a" name="Default Changelist" comment="chore: update all dependencies"
|
|
25
|
+
<list default="true" id="ebeb713d-6dc4-42d1-a42e-54aad95d9c0a" name="Default Changelist" comment="chore: update all dependencies">
|
|
26
|
+
<change beforePath="$PROJECT_DIR$/src/checkPeerDependencies.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/checkPeerDependencies.ts" afterDir="false" />
|
|
27
|
+
<change beforePath="$PROJECT_DIR$/src/cli.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/cli.ts" afterDir="false" />
|
|
28
|
+
<change beforePath="$PROJECT_DIR$/src/packageUtils.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/packageUtils.ts" afterDir="false" />
|
|
29
|
+
</list>
|
|
23
30
|
<option name="SHOW_DIALOG" value="false" />
|
|
24
31
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
25
32
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
@@ -38,13 +45,9 @@
|
|
|
38
45
|
<RecentBranchesForRepo>
|
|
39
46
|
<option name="branches">
|
|
40
47
|
<list>
|
|
41
|
-
<RecentBranch>
|
|
42
|
-
<option name="branchName" value="match-prereleases" />
|
|
43
|
-
<option name="lastUsedInstant" value="1609100456" />
|
|
44
|
-
</RecentBranch>
|
|
45
48
|
<RecentBranch>
|
|
46
49
|
<option name="branchName" value="master" />
|
|
47
|
-
<option name="lastUsedInstant" value="
|
|
50
|
+
<option name="lastUsedInstant" value="1609100767" />
|
|
48
51
|
</RecentBranch>
|
|
49
52
|
</list>
|
|
50
53
|
</option>
|
|
@@ -77,7 +80,7 @@
|
|
|
77
80
|
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
|
78
81
|
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
|
79
82
|
<property name="nodejs_package_manager_path" value="yarn" />
|
|
80
|
-
<property name="settings.editor.selected.configurable" value="
|
|
83
|
+
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
|
|
81
84
|
<property name="ts.external.directory.path" value="$PROJECT_DIR$/node_modules/typescript/lib" />
|
|
82
85
|
<property name="vue.rearranger.settings.migration" value="true" />
|
|
83
86
|
</component>
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
# 4.1.0 (2021-11-28)
|
|
2
|
+
[Compare `check-peer-dependencies` versions 4.0.0 and 4.1.0](https://github.com/christopherthielen/check-peer-dependencies/compare/4.0.0...4.1.0)
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* Add support for ignoring peer dependencies (via cli option or config stored in package.json) ([5994c9c](https://github.com/christopherthielen/check-peer-dependencies/commit/5994c9c))
|
|
7
|
+
* load checkPeerDependencies config from package.json (and merge with CLI options) ([e2f0fee](https://github.com/christopherthielen/check-peer-dependencies/commit/e2f0fee))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
1
12
|
# 4.0.0 (2020-12-27)
|
|
2
13
|
[Compare `check-peer-dependencies` versions 3.1.0 and 4.0.0](https://github.com/christopherthielen/check-peer-dependencies/compare/3.1.0...4.0.0)
|
|
3
14
|
|
package/README.md
CHANGED
|
@@ -17,11 +17,23 @@ npx check-peer-dependencies [--yarn|--npm] [--install] [--help]
|
|
|
17
17
|
|
|
18
18
|
Options:
|
|
19
19
|
```
|
|
20
|
-
--help
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
-h, --help Print usage information [boolean]
|
|
21
|
+
--version Show version number [boolean]
|
|
22
|
+
--yarn Force yarn package manager [boolean]
|
|
23
|
+
--npm Force npm package manager [boolean]
|
|
24
|
+
--orderBy Order the output by depender or dependee
|
|
25
|
+
[choices: "depender", "dependee"] [default: "dependee"]
|
|
26
|
+
--debug Print debugging information
|
|
27
|
+
[boolean] [default: false]
|
|
28
|
+
--verbose Prints every peer dependency, even those that
|
|
29
|
+
are met [boolean] [default: false]
|
|
30
|
+
--runOnlyOnRootDependencies Run tool only on package root dependencies
|
|
31
|
+
[boolean] [default: false]
|
|
32
|
+
--findSolutions Search for solutions and print package
|
|
33
|
+
installation commands
|
|
34
|
+
[boolean] [default: false]
|
|
35
|
+
--install Install missing or incorrect peerDependencies
|
|
36
|
+
[boolean] [default: false]
|
|
25
37
|
```
|
|
26
38
|
|
|
27
39
|
---
|
|
@@ -26,10 +26,15 @@ function getAllNestedPeerDependencies(options) {
|
|
|
26
26
|
var isYalc = !!/-[a-f0-9]+-yalc$/.exec(installedVersion);
|
|
27
27
|
return __assign(__assign({}, dep), { installedVersion: installedVersion, semverSatisfies: semverSatisfies, isYalc: isYalc });
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
function applyIgnoreInformation(dep) {
|
|
30
|
+
var isIgnored = options.ignore.includes(dep.name);
|
|
31
|
+
return __assign(__assign({}, dep), { isIgnored: isIgnored });
|
|
32
|
+
}
|
|
33
|
+
return gatheredDependencies.map(applySemverInformation).map(applyIgnoreInformation);
|
|
30
34
|
}
|
|
31
35
|
var recursiveCount = 0;
|
|
32
|
-
var
|
|
36
|
+
var isProblem = function (dep) { return !dep.semverSatisfies && !dep.isIgnored && !dep.isYalc && !dep.isPeerOptionalDependency; };
|
|
37
|
+
var reportPeerDependencyStatus = function (dep, byDepender, showSatisfiedDep, verbose) {
|
|
33
38
|
var message = byDepender ?
|
|
34
39
|
dep.depender.name + "@" + dep.depender.version + " requires " + dep.name + " " + dep.version :
|
|
35
40
|
dep.name + " " + dep.version + " is required by " + dep.depender.name + "@" + dep.depender.version;
|
|
@@ -42,16 +47,21 @@ var reportPeerDependencyStatus = function (dep, byDepender, showSatisfiedDep, sh
|
|
|
42
47
|
console.log(" \u2611\uFE0F " + message + " (" + dep.installedVersion + " is installed via yalc)");
|
|
43
48
|
}
|
|
44
49
|
else if (dep.installedVersion && dep.isPeerOptionalDependency) {
|
|
45
|
-
if (
|
|
46
|
-
console.log(" \u2611\uFE0F
|
|
50
|
+
if (verbose) {
|
|
51
|
+
console.log(" \u2611\uFE0F " + message + ") OPTIONAL (" + dep.installedVersion + " is installed)");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else if (dep.isIgnored) {
|
|
55
|
+
if (verbose) {
|
|
56
|
+
console.log(" \u2611\uFE0F " + message + " IGNORED (" + dep.name + " is not installed)");
|
|
47
57
|
}
|
|
48
58
|
}
|
|
49
59
|
else if (dep.installedVersion) {
|
|
50
60
|
console.log(" \u274C " + message + ") (" + dep.installedVersion + " is installed)");
|
|
51
61
|
}
|
|
52
62
|
else if (dep.isPeerOptionalDependency) {
|
|
53
|
-
if (
|
|
54
|
-
console.log(" \u2611\uFE0F
|
|
63
|
+
if (verbose) {
|
|
64
|
+
console.log(" \u2611\uFE0F " + message + " OPTIONAL (" + dep.name + " is not installed)");
|
|
55
65
|
}
|
|
56
66
|
}
|
|
57
67
|
else {
|
|
@@ -85,14 +95,14 @@ function installPeerDependencies(commandLines, options, nosolution, packageManag
|
|
|
85
95
|
shelljs_1.exec(command);
|
|
86
96
|
console.log();
|
|
87
97
|
});
|
|
88
|
-
var
|
|
89
|
-
.filter(function (dep) { return
|
|
98
|
+
var newProblems = getAllNestedPeerDependencies(options)
|
|
99
|
+
.filter(function (dep) { return isProblem(dep); })
|
|
90
100
|
.filter(function (dep) { return !nosolution.some(function (x) { return packageUtils_1.isSameDep(x.problem, dep); }); });
|
|
91
|
-
if (nosolution.length === 0 &&
|
|
101
|
+
if (nosolution.length === 0 && newProblems.length === 0) {
|
|
92
102
|
console.log('All peer dependencies are met');
|
|
93
103
|
}
|
|
94
|
-
if (
|
|
95
|
-
console.log("Found " +
|
|
104
|
+
if (newProblems.length > 0) {
|
|
105
|
+
console.log("Found " + newProblems.length + " new unmet peerDependencies...");
|
|
96
106
|
if (++recursiveCount < 5) {
|
|
97
107
|
return checkPeerDependencies(packageManager, options);
|
|
98
108
|
}
|
|
@@ -111,17 +121,15 @@ function report(options, allNestedPeerDependencies) {
|
|
|
111
121
|
allNestedPeerDependencies.sort(function (a, b) { return ("" + a.name + a.depender).localeCompare("" + b.name + b.depender); });
|
|
112
122
|
}
|
|
113
123
|
allNestedPeerDependencies.forEach(function (dep) {
|
|
114
|
-
var isUnsatisfied = function (dep) { return !dep.semverSatisfies && !dep.isYalc; };
|
|
115
124
|
var relatedPeerDeps = allNestedPeerDependencies.filter(function (other) { return other.name === dep.name && other !== dep; });
|
|
116
|
-
var showIfSatisfied = options.verbose || relatedPeerDeps.some(
|
|
117
|
-
|
|
118
|
-
reportPeerDependencyStatus(dep, options.orderBy === 'depender', showIfSatisfied, showOptionalDep);
|
|
125
|
+
var showIfSatisfied = options.verbose || relatedPeerDeps.some(function (dep) { return isProblem(dep); });
|
|
126
|
+
reportPeerDependencyStatus(dep, options.orderBy === 'depender', showIfSatisfied, options.verbose);
|
|
119
127
|
});
|
|
120
128
|
}
|
|
121
129
|
function checkPeerDependencies(packageManager, options) {
|
|
122
130
|
var allNestedPeerDependencies = getAllNestedPeerDependencies(options);
|
|
123
131
|
report(options, allNestedPeerDependencies);
|
|
124
|
-
var problems = allNestedPeerDependencies.filter(function (dep) { return
|
|
132
|
+
var problems = allNestedPeerDependencies.filter(function (dep) { return isProblem(dep); });
|
|
125
133
|
if (!problems.length) {
|
|
126
134
|
console.log(' ✅ All peer dependencies are met');
|
|
127
135
|
return;
|
package/dist/cli.js
CHANGED
|
@@ -5,6 +5,8 @@ var yarrrrgs = require("yargs");
|
|
|
5
5
|
var checkPeerDependencies_1 = require("./checkPeerDependencies");
|
|
6
6
|
var packageManager_1 = require("./packageManager");
|
|
7
7
|
var options = yarrrrgs
|
|
8
|
+
.pkgConf('checkPeerDependencies')
|
|
9
|
+
.usage('Options may also be stored in package.json under the "checkPeerDependencies" key')
|
|
8
10
|
.option('help', {
|
|
9
11
|
alias: 'h',
|
|
10
12
|
boolean: true,
|
|
@@ -32,6 +34,12 @@ var options = yarrrrgs
|
|
|
32
34
|
boolean: true,
|
|
33
35
|
"default": false,
|
|
34
36
|
description: 'Prints every peer dependency, even those that are met'
|
|
37
|
+
})
|
|
38
|
+
.option('ignore', {
|
|
39
|
+
string: true,
|
|
40
|
+
array: true,
|
|
41
|
+
"default": [],
|
|
42
|
+
description: 'package name to ignore (may specify multiple)'
|
|
35
43
|
})
|
|
36
44
|
.option('runOnlyOnRootDependencies', {
|
|
37
45
|
boolean: true,
|
package/package.json
CHANGED