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.
@@ -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="1609100455" />
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="configurable.group.appearance" />
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, -h Print usage information [boolean]
21
- --version Show version number [boolean]
22
- --yarn Use yarn package manager [boolean]
23
- --npm Use npm package manager [boolean]
24
- --install Install missing or incorrect peerDependencies [boolean]
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
- return gatheredDependencies.map(applySemverInformation);
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 reportPeerDependencyStatus = function (dep, byDepender, showSatisfiedDep, showOptionalDep) {
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 (showOptionalDep) {
46
- console.log(" \u2611\uFE0F " + message + ") OPTIONAL (" + dep.installedVersion + " is installed)");
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 (showOptionalDep) {
54
- console.log(" \u2611\uFE0F " + message + " OPTIONAL (" + dep.name + " is not installed)");
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 newUnsatisfiedDeps = getAllNestedPeerDependencies(options)
89
- .filter(function (dep) { return !dep.semverSatisfies; })
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 && newUnsatisfiedDeps.length === 0) {
101
+ if (nosolution.length === 0 && newProblems.length === 0) {
92
102
  console.log('All peer dependencies are met');
93
103
  }
94
- if (newUnsatisfiedDeps.length > 0) {
95
- console.log("Found " + newUnsatisfiedDeps.length + " new unmet peerDependencies...");
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(isUnsatisfied);
117
- var showOptionalDep = options.verbose;
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 !dep.semverSatisfies && !dep.isYalc && !dep.isPeerOptionalDependency; });
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "check-peer-dependencies",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "Checks peer dependencies of the current package. Offers solutions for any that are unmet.",
5
5
  "main": "dist/check_peer_dependencies.js",
6
6
  "scripts": {