check-peer-dependencies 4.1.0 → 4.3.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 +36 -25
- package/CHANGELOG.md +21 -0
- package/README.md +2 -0
- package/dist/checkPeerDependencies.js +8 -7
- package/dist/cli.js +0 -0
- package/dist/packageManager.js +2 -2
- package/dist/packageUtils.js +17 -15
- package/package.json +1 -1
- package/dist/check_peer_dependencies.js +0 -77
- package/dist/resolvePackageDir.js +0 -20
package/.idea/workspace.xml
CHANGED
|
@@ -22,10 +22,8 @@
|
|
|
22
22
|
<select />
|
|
23
23
|
</component>
|
|
24
24
|
<component name="ChangeListManager">
|
|
25
|
-
<list default="true" id="ebeb713d-6dc4-42d1-a42e-54aad95d9c0a" name="Default Changelist" comment="
|
|
25
|
+
<list default="true" id="ebeb713d-6dc4-42d1-a42e-54aad95d9c0a" name="Default Changelist" comment="feat: detect yarn2 lockfile (and then use 'yarn up') Note: yarn2 pnp will likely never be supported">
|
|
26
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
27
|
</list>
|
|
30
28
|
<option name="SHOW_DIALOG" value="false" />
|
|
31
29
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
@@ -33,9 +31,22 @@
|
|
|
33
31
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
34
32
|
</component>
|
|
35
33
|
<component name="Git.Settings">
|
|
34
|
+
<option name="RECENT_BRANCH_BY_REPOSITORY">
|
|
35
|
+
<map>
|
|
36
|
+
<entry key="$PROJECT_DIR$" value="yarn2-sorta-notreally" />
|
|
37
|
+
</map>
|
|
38
|
+
</option>
|
|
36
39
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
37
40
|
<option name="UPDATE_TYPE" value="REBASE" />
|
|
38
41
|
</component>
|
|
42
|
+
<component name="GitSEFilterConfiguration">
|
|
43
|
+
<file-type-list>
|
|
44
|
+
<filtered-out-file-type name="LOCAL_BRANCH" />
|
|
45
|
+
<filtered-out-file-type name="REMOTE_BRANCH" />
|
|
46
|
+
<filtered-out-file-type name="TAG" />
|
|
47
|
+
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
|
|
48
|
+
</file-type-list>
|
|
49
|
+
</component>
|
|
39
50
|
<component name="GitToolBoxStore">
|
|
40
51
|
<option name="projectConfigVersion" value="2" />
|
|
41
52
|
<option name="recentBranches">
|
|
@@ -58,6 +69,12 @@
|
|
|
58
69
|
</RecentBranches>
|
|
59
70
|
</option>
|
|
60
71
|
</component>
|
|
72
|
+
<component name="MarkdownSettingsMigration">
|
|
73
|
+
<option name="stateVersion" value="1" />
|
|
74
|
+
</component>
|
|
75
|
+
<component name="ProjectColorInfo"><![CDATA[{
|
|
76
|
+
"associatedIndex": 6
|
|
77
|
+
}]]></component>
|
|
61
78
|
<component name="ProjectId" id="1SkfJRmHXPtjMGY19cBVwFevkIM" />
|
|
62
79
|
<component name="ProjectLevelVcsManager">
|
|
63
80
|
<OptionsSetting value="false" id="Update" />
|
|
@@ -68,22 +85,17 @@
|
|
|
68
85
|
<option name="hideEmptyMiddlePackages" value="true" />
|
|
69
86
|
<option name="showLibraryContents" value="true" />
|
|
70
87
|
</component>
|
|
71
|
-
<component name="PropertiesComponent"
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
<property name="nodejs_package_manager_path" value="yarn" />
|
|
83
|
-
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
|
|
84
|
-
<property name="ts.external.directory.path" value="$PROJECT_DIR$/node_modules/typescript/lib" />
|
|
85
|
-
<property name="vue.rearranger.settings.migration" value="true" />
|
|
86
|
-
</component>
|
|
88
|
+
<component name="PropertiesComponent"><![CDATA[{
|
|
89
|
+
"keyToString": {
|
|
90
|
+
"git-widget-placeholder": "optional",
|
|
91
|
+
"node.js.detected.package.eslint": "true",
|
|
92
|
+
"node.js.detected.package.tslint": "true",
|
|
93
|
+
"node.js.selected.package.eslint": "(autodetect)",
|
|
94
|
+
"node.js.selected.package.tslint": "(autodetect)",
|
|
95
|
+
"nodejs_package_manager_path": "yarn",
|
|
96
|
+
"ts.external.directory.path": "/Users/chris/projects/check-peer-dependencies/node_modules/typescript/lib"
|
|
97
|
+
}
|
|
98
|
+
}]]></component>
|
|
87
99
|
<component name="RecentsManager">
|
|
88
100
|
<key name="es6.move.members.recent.items">
|
|
89
101
|
<recent name="$PROJECT_DIR$/src/packageUtils.ts" />
|
|
@@ -306,13 +318,8 @@
|
|
|
306
318
|
</entry>
|
|
307
319
|
</map>
|
|
308
320
|
</option>
|
|
309
|
-
<option name="oldMeFiltersMigrated" value="true" />
|
|
310
321
|
</component>
|
|
311
322
|
<component name="VcsManagerConfiguration">
|
|
312
|
-
<MESSAGE value="chore: add shelljs dependency" />
|
|
313
|
-
<MESSAGE value="chore: add yargs and shelljs dependency" />
|
|
314
|
-
<MESSAGE value="chore: add yargs and shelljs and semver dependencies" />
|
|
315
|
-
<MESSAGE value="refactor: extract cli.ts" />
|
|
316
323
|
<MESSAGE value="fix(packageManager): remove console.log, switch to boolean parameters" />
|
|
317
324
|
<MESSAGE value="fix(checkPeerDependencies): check for yalc'd packages using installedVersion, not dependerVersion" />
|
|
318
325
|
<MESSAGE value="chore: Add README.md and CHANGELOG.md" />
|
|
@@ -334,6 +341,10 @@
|
|
|
334
341
|
<MESSAGE value="feat(peerDependencyMeta): support peerDependencyMeta in package.json to ignore optional peer dependencies" />
|
|
335
342
|
<MESSAGE value="feat(prerelease): include prerelease when matching ranges, i.e. the range ">=6.0.0" matches "7.0.0-beta.1" BREAKING CHANGE: Matches prerelease versions" />
|
|
336
343
|
<MESSAGE value="chore: update all dependencies" />
|
|
337
|
-
<
|
|
344
|
+
<MESSAGE value="feat: load checkPeerDependencies config from package.json (and merge with CLI options)" />
|
|
345
|
+
<MESSAGE value="feat: Add support for ignoring peer dependencies (via cli option or config stored in package.json)" />
|
|
346
|
+
<MESSAGE value="fix: Install peer deps as devDependencies if the peer dep came from a dev dependency fix: Properly install dev dependencies when using npm as the package manager" />
|
|
347
|
+
<MESSAGE value="feat: detect yarn2 lockfile (and then use 'yarn up') Note: yarn2 pnp will likely never be supported" />
|
|
348
|
+
<option name="LAST_COMMIT_MESSAGE" value="feat: detect yarn2 lockfile (and then use 'yarn up') Note: yarn2 pnp will likely never be supported" />
|
|
338
349
|
</component>
|
|
339
350
|
</project>
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
# 4.3.0 (2023-10-17)
|
|
2
|
+
[Compare `check-peer-dependencies` versions 4.2.0 and 4.3.0](https://github.com/christopherthielen/check-peer-dependencies/compare/4.2.0...4.3.0)
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* non-satisfied optional dependency should fail ([7d43b0d](https://github.com/christopherthielen/check-peer-dependencies/commit/7d43b0d))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# 4.2.0 (2023-03-13)
|
|
12
|
+
[Compare `check-peer-dependencies` versions 4.1.0 and 4.2.0](https://github.com/christopherthielen/check-peer-dependencies/compare/4.1.0...4.2.0)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* Install peer deps as devDependencies if the peer dep came from a dev dependency ([6ef3021](https://github.com/christopherthielen/check-peer-dependencies/commit/6ef3021)), closes [#21](https://github.com/christopherthielen/check-peer-dependencies/issues/21)
|
|
17
|
+
* Method for determining the installed version fails [#27](https://github.com/christopherthielen/check-peer-dependencies/issues/27) ([8058585](https://github.com/christopherthielen/check-peer-dependencies/commit/8058585))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
1
22
|
# 4.1.0 (2021-11-28)
|
|
2
23
|
[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
24
|
|
package/README.md
CHANGED
|
@@ -27,6 +27,8 @@ Options:
|
|
|
27
27
|
[boolean] [default: false]
|
|
28
28
|
--verbose Prints every peer dependency, even those that
|
|
29
29
|
are met [boolean] [default: false]
|
|
30
|
+
--ignore package name to ignore (may specify multiple)
|
|
31
|
+
[array] [default: []]
|
|
30
32
|
--runOnlyOnRootDependencies Run tool only on package root dependencies
|
|
31
33
|
[boolean] [default: false]
|
|
32
34
|
--findSolutions Search for solutions and print package
|
|
@@ -33,7 +33,8 @@ function getAllNestedPeerDependencies(options) {
|
|
|
33
33
|
return gatheredDependencies.map(applySemverInformation).map(applyIgnoreInformation);
|
|
34
34
|
}
|
|
35
35
|
var recursiveCount = 0;
|
|
36
|
-
var isProblem = function (dep) { return !dep.semverSatisfies && !dep.isIgnored && !dep.isYalc &&
|
|
36
|
+
var isProblem = function (dep) { return !dep.semverSatisfies && !dep.isIgnored && !dep.isYalc &&
|
|
37
|
+
(!dep.isPeerOptionalDependency || !!dep.installedVersion); };
|
|
37
38
|
var reportPeerDependencyStatus = function (dep, byDepender, showSatisfiedDep, verbose) {
|
|
38
39
|
var message = byDepender ?
|
|
39
40
|
dep.depender.name + "@" + dep.depender.version + " requires " + dep.name + " " + dep.version :
|
|
@@ -46,18 +47,18 @@ var reportPeerDependencyStatus = function (dep, byDepender, showSatisfiedDep, ve
|
|
|
46
47
|
else if (dep.isYalc) {
|
|
47
48
|
console.log(" \u2611\uFE0F " + message + " (" + dep.installedVersion + " is installed via yalc)");
|
|
48
49
|
}
|
|
49
|
-
else if (dep.installedVersion && dep.isPeerOptionalDependency) {
|
|
50
|
-
if (verbose) {
|
|
51
|
-
console.log(" \u2611\uFE0F " + message + ") OPTIONAL (" + dep.installedVersion + " is installed)");
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
50
|
else if (dep.isIgnored) {
|
|
55
51
|
if (verbose) {
|
|
56
52
|
console.log(" \u2611\uFE0F " + message + " IGNORED (" + dep.name + " is not installed)");
|
|
57
53
|
}
|
|
58
54
|
}
|
|
59
55
|
else if (dep.installedVersion) {
|
|
60
|
-
|
|
56
|
+
if (dep.isPeerOptionalDependency) {
|
|
57
|
+
console.log(" \u274C " + message + ") OPTIONAL (" + dep.installedVersion + " is installed)");
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
console.log(" \u274C " + message + ") (" + dep.installedVersion + " is installed)");
|
|
61
|
+
}
|
|
61
62
|
}
|
|
62
63
|
else if (dep.isPeerOptionalDependency) {
|
|
63
64
|
if (verbose) {
|
package/dist/cli.js
CHANGED
|
File without changes
|
package/dist/packageManager.js
CHANGED
|
@@ -29,12 +29,12 @@ function getCommandLines(packageManager, resolutions) {
|
|
|
29
29
|
commands.push("yarn upgrade " + upgrades.join(' '));
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
else if (packageManager === 'npm' && (installs.length || upgrades.length)) {
|
|
32
|
+
else if (packageManager === 'npm' && (installs.length || upgrades.length || devInstalls.length)) {
|
|
33
33
|
if (installs.length || upgrades.length) {
|
|
34
34
|
commands.push("npm install " + installs.concat(upgrades).join(' '));
|
|
35
35
|
}
|
|
36
36
|
if (devInstalls.length) {
|
|
37
|
-
commands.push("npm install -D " +
|
|
37
|
+
commands.push("npm install -D " + devInstalls);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
return commands;
|
package/dist/packageUtils.js
CHANGED
|
@@ -10,14 +10,14 @@ function gatherPeerDependencies(packagePath, options) {
|
|
|
10
10
|
var visitor = function (path, json, deps) {
|
|
11
11
|
peerDeps = peerDeps.concat(deps.peerDependencies);
|
|
12
12
|
};
|
|
13
|
-
walkPackageDependencyTree(packagePath, visitor, [], options);
|
|
13
|
+
walkPackageDependencyTree(packagePath, false, visitor, [], options);
|
|
14
14
|
// Eliminate duplicates
|
|
15
15
|
return peerDeps.reduce(function (acc, dep) {
|
|
16
16
|
return acc.some(function (dep2) { return isSameDep(dep, dep2); }) ? acc : acc.concat(dep);
|
|
17
17
|
}, []);
|
|
18
18
|
}
|
|
19
19
|
exports.gatherPeerDependencies = gatherPeerDependencies;
|
|
20
|
-
function walkPackageDependencyTree(packagePath, visitor, visitedPaths, options) {
|
|
20
|
+
function walkPackageDependencyTree(packagePath, isAncestorDevDependency, visitor, visitedPaths, options) {
|
|
21
21
|
var isRootPackage = visitedPaths.length === 0;
|
|
22
22
|
if (visitedPaths.includes(packagePath)) {
|
|
23
23
|
return;
|
|
@@ -28,13 +28,13 @@ function walkPackageDependencyTree(packagePath, visitor, visitedPaths, options)
|
|
|
28
28
|
throw new Error("package.json missing at " + packageJsonPath + ".");
|
|
29
29
|
}
|
|
30
30
|
var packageJson = readJson_1.readJson(packageJsonPath);
|
|
31
|
-
var packageDependencies = getPackageMeta(packagePath, packageJson);
|
|
31
|
+
var packageDependencies = getPackageMeta(packagePath, packageJson, isAncestorDevDependency);
|
|
32
32
|
if (options.debug) {
|
|
33
33
|
console.log(packageJsonPath);
|
|
34
34
|
packageDependencies.peerDependencies.forEach(function (dep) { return console.log(dep); });
|
|
35
35
|
}
|
|
36
36
|
visitor(packagePath, packageJson, packageDependencies);
|
|
37
|
-
function walkDependency(dependency) {
|
|
37
|
+
function walkDependency(dependency, isAncestorDevDependency) {
|
|
38
38
|
if (resolve.isCore(dependency.name)) {
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
@@ -51,15 +51,15 @@ function walkPackageDependencyTree(packagePath, visitor, visitedPaths, options)
|
|
|
51
51
|
throw new Error("WARN: Unable to resolve package " + dependency.name + " from " + packagePath);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
walkPackageDependencyTree(dependencyPath, visitor, visitedPaths, options);
|
|
54
|
+
walkPackageDependencyTree(dependencyPath, isAncestorDevDependency, visitor, visitedPaths, options);
|
|
55
55
|
}
|
|
56
56
|
if (isRootPackage)
|
|
57
|
-
packageDependencies.devDependencies.forEach(walkDependency);
|
|
57
|
+
packageDependencies.devDependencies.forEach(function (dep) { return walkDependency(dep, true); });
|
|
58
58
|
if (isRootPackage || !options.runOnlyOnRootDependencies)
|
|
59
|
-
packageDependencies.dependencies.forEach(walkDependency);
|
|
59
|
+
packageDependencies.dependencies.forEach(function (dep) { return walkDependency(dep, false); });
|
|
60
60
|
}
|
|
61
61
|
exports.walkPackageDependencyTree = walkPackageDependencyTree;
|
|
62
|
-
function buildDependencyArray(type, pkgJson, depender) {
|
|
62
|
+
function buildDependencyArray(type, pkgJson, depender, isAncestorDevDependency) {
|
|
63
63
|
var dependenciesObject = pkgJson[type] || {};
|
|
64
64
|
var peerDependenciesMeta = pkgJson.peerDependenciesMeta || {};
|
|
65
65
|
// backwards compat
|
|
@@ -68,7 +68,7 @@ function buildDependencyArray(type, pkgJson, depender) {
|
|
|
68
68
|
return packageNames.map(function (name) {
|
|
69
69
|
var _a, _b;
|
|
70
70
|
var isPeerOptionalDependency = !!((_a = peerDependenciesMeta[name]) === null || _a === void 0 ? void 0 : _a.optional);
|
|
71
|
-
var isPeerDevDependency = !!((_b = peerDependenciesMeta[name]) === null || _b === void 0 ? void 0 : _b.dev) || !!peerDevDependencies.includes(name);
|
|
71
|
+
var isPeerDevDependency = isAncestorDevDependency || !!((_b = peerDependenciesMeta[name]) === null || _b === void 0 ? void 0 : _b.dev) || !!peerDevDependencies.includes(name);
|
|
72
72
|
return {
|
|
73
73
|
name: name,
|
|
74
74
|
type: type,
|
|
@@ -79,13 +79,13 @@ function buildDependencyArray(type, pkgJson, depender) {
|
|
|
79
79
|
};
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
|
-
function getPackageMeta(packagePath, packageJson) {
|
|
82
|
+
function getPackageMeta(packagePath, packageJson, isAncestorDevDependency) {
|
|
83
83
|
var name = packageJson.name, version = packageJson.version;
|
|
84
84
|
var packageMeta = { name: name, version: version, packagePath: packagePath };
|
|
85
|
-
packageMeta.dependencies = buildDependencyArray("dependencies", packageJson, packageMeta);
|
|
86
|
-
packageMeta.devDependencies = buildDependencyArray("devDependencies", packageJson, packageMeta);
|
|
87
|
-
packageMeta.optionalDependencies = buildDependencyArray("optionalDependencies", packageJson, packageMeta);
|
|
88
|
-
packageMeta.peerDependencies = buildDependencyArray("peerDependencies", packageJson, packageMeta);
|
|
85
|
+
packageMeta.dependencies = buildDependencyArray("dependencies", packageJson, packageMeta, isAncestorDevDependency);
|
|
86
|
+
packageMeta.devDependencies = buildDependencyArray("devDependencies", packageJson, packageMeta, isAncestorDevDependency);
|
|
87
|
+
packageMeta.optionalDependencies = buildDependencyArray("optionalDependencies", packageJson, packageMeta, isAncestorDevDependency);
|
|
88
|
+
packageMeta.peerDependencies = buildDependencyArray("peerDependencies", packageJson, packageMeta, isAncestorDevDependency);
|
|
89
89
|
return packageMeta;
|
|
90
90
|
}
|
|
91
91
|
exports.getPackageMeta = getPackageMeta;
|
|
@@ -94,7 +94,9 @@ function resolvePackageDir(basedir, packageName) {
|
|
|
94
94
|
// In resolve() v2.x this callback has a different signature
|
|
95
95
|
// function packageFilter(pkg, pkgfile, pkgdir) {
|
|
96
96
|
function packageFilter(pkg, pkgdir) {
|
|
97
|
-
packagePath
|
|
97
|
+
if (!packagePath || pkg.version) {
|
|
98
|
+
packagePath = pkgdir;
|
|
99
|
+
}
|
|
98
100
|
return pkg;
|
|
99
101
|
}
|
|
100
102
|
try {
|
package/package.json
CHANGED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
var __assign = (this && this.__assign) || function () {
|
|
4
|
-
__assign = Object.assign || function(t) {
|
|
5
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
-
s = arguments[i];
|
|
7
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
8
|
-
t[p] = s[p];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
|
-
return __assign.apply(this, arguments);
|
|
13
|
-
};
|
|
14
|
-
exports.__esModule = true;
|
|
15
|
-
var path = require("path");
|
|
16
|
-
var semver = require("semver");
|
|
17
|
-
var shelljs_1 = require("shelljs");
|
|
18
|
-
var packageManager_1 = require("./packageManager");
|
|
19
|
-
var packageUtils_1 = require("./packageUtils");
|
|
20
|
-
var readJson_1 = require("./readJson");
|
|
21
|
-
var solution_1 = require("./solution");
|
|
22
|
-
function checkPeerDependencies(packageManager, installMissingPeerDependencies) {
|
|
23
|
-
var allNestedPeerDependencies = packageUtils_1.gatherPeerDependencies(".").map(function (dep) {
|
|
24
|
-
var installedVersion = getInstalledVersion(dep);
|
|
25
|
-
var semverSatisfies = installedVersion ? semver.satisfies(installedVersion, dep.version) : false;
|
|
26
|
-
return __assign(__assign({}, dep), { installedVersion: installedVersion, semverSatisfies: semverSatisfies });
|
|
27
|
-
}).sort(function (a, b) { return ("" + a.name + a.depender).localeCompare("" + b.name + b.depender); });
|
|
28
|
-
allNestedPeerDependencies.forEach(function (dep) {
|
|
29
|
-
if (dep.semverSatisfies) {
|
|
30
|
-
console.log("\u2705 " + dep.depender + " requires " + dep.name + " " + dep.version + " and " + dep.installedVersion + " is installed");
|
|
31
|
-
}
|
|
32
|
-
else if (dep.installedVersion) {
|
|
33
|
-
console.log("\u274C " + dep.depender + " requires " + dep.name + " " + dep.version + ", but " + dep.name + " is not installed");
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
console.log("\u274C " + dep.depender + " requires " + dep.name + " " + dep.version + ", but " + dep.installedVersion + " is installed");
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
var problems = allNestedPeerDependencies.filter(function (dep) { return !dep.semverSatisfies && !/file:\.yalc/.exec(dep.dependerVersion); });
|
|
40
|
-
if (!problems.length) {
|
|
41
|
-
console.log('No problems found!');
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
console.log('Searching for solutions:');
|
|
45
|
-
var resolutions = solution_1.findPossibleResolutions(problems, allNestedPeerDependencies);
|
|
46
|
-
var installs = resolutions.filter(function (r) { return r.resolutionType === 'install'; }).map(function (r) { return r.resolution; });
|
|
47
|
-
var upgrades = resolutions.filter(function (r) { return r.resolutionType === 'upgrade'; }).map(function (r) { return r.resolution; });
|
|
48
|
-
var nosolution = resolutions.filter(function (r) { return !r.resolution; });
|
|
49
|
-
nosolution.forEach(function (solution) {
|
|
50
|
-
var name = solution.problem.name;
|
|
51
|
-
var errorPrefix = "Unable to find a version of " + name + " that satisfies the following peerDependencies:";
|
|
52
|
-
var peerDepRanges = allNestedPeerDependencies.filter(function (dep) { return dep.name === name; })
|
|
53
|
-
.reduce(function (acc, dep) { return acc.includes(dep.version) ? acc : acc.concat(dep.version); }, []);
|
|
54
|
-
console.error("\u274C\u274C\u274C " + errorPrefix + " " + peerDepRanges.join(" and ") + " \u274C\u274C\u274C");
|
|
55
|
-
});
|
|
56
|
-
var commandLines = packageManager_1.getCommandLines(packageManager, installs, upgrades);
|
|
57
|
-
if (nosolution.length) {
|
|
58
|
-
console.error();
|
|
59
|
-
}
|
|
60
|
-
if (installMissingPeerDependencies) {
|
|
61
|
-
console.log('Installing peerDependencies...');
|
|
62
|
-
commandLines.forEach(function (command) { return shelljs_1.exec(command); });
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
commandLines.forEach(function (command) { return console.log(command); });
|
|
66
|
-
console.log();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
exports.checkPeerDependencies = checkPeerDependencies;
|
|
70
|
-
function getInstalledVersion(dep) {
|
|
71
|
-
var peerDependencyDir = packageUtils_1.resolvePackageDir(".", dep.name);
|
|
72
|
-
if (!peerDependencyDir) {
|
|
73
|
-
return undefined;
|
|
74
|
-
}
|
|
75
|
-
var packageJson = readJson_1.readJson(path.resolve(peerDependencyDir, 'package.json'));
|
|
76
|
-
return packageJson.version;
|
|
77
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
exports.__esModule = true;
|
|
3
|
-
var resolve = require("resolve");
|
|
4
|
-
function resolvePackageDir(basedir, packageName) {
|
|
5
|
-
var packagePath;
|
|
6
|
-
function packageFilter(pkg, pkgfile) {
|
|
7
|
-
packagePath = pkgfile;
|
|
8
|
-
return pkg;
|
|
9
|
-
}
|
|
10
|
-
try {
|
|
11
|
-
resolve.sync(packageName, { basedir: basedir, packageFilter: packageFilter });
|
|
12
|
-
}
|
|
13
|
-
catch (ignored) {
|
|
14
|
-
// resolve.sync throws if no main: is present
|
|
15
|
-
// Some packages (such as @types/*) do not have a main
|
|
16
|
-
// As long as we have a packagePath, it's fine
|
|
17
|
-
}
|
|
18
|
-
return packagePath;
|
|
19
|
-
}
|
|
20
|
-
exports.resolvePackageDir = resolvePackageDir;
|