node-dep-resolver 1.1.1 → 1.1.3
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/bin/cli.js +29 -1
- package/package.json +1 -1
package/bin/cli.js
CHANGED
|
@@ -2,9 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
import fs from "fs";
|
|
4
4
|
import path from "path";
|
|
5
|
+
import semver from "semver";
|
|
5
6
|
import Graph from "../src/base/graph/GraphClass.js";
|
|
6
7
|
import Resolver from "../src/base/resolver/ResolverClass.js";
|
|
7
8
|
|
|
9
|
+
function formatSolutionLine(name, packageData, requestedRange) {
|
|
10
|
+
if (requestedRange) {
|
|
11
|
+
const minVerObj = semver.minVersion(requestedRange);
|
|
12
|
+
const minVer = minVerObj ? minVerObj.version : requestedRange;
|
|
13
|
+
|
|
14
|
+
if (semver.valid(packageData.version) && semver.valid(minVer)) {
|
|
15
|
+
if (semver.gt(packageData.version, minVer)) {
|
|
16
|
+
return ` [UPGRADE] ${name}: ${minVer} -> ${packageData.version} (satisfies requested range '${requestedRange}')`;
|
|
17
|
+
} else if (semver.lt(packageData.version, minVer)) {
|
|
18
|
+
return ` [DOWNGRADE] ${name}: ${minVer} -> ${packageData.version} (satisfies requested range '${requestedRange}')`;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return ` [OK] ${name}: ${packageData.version} (satisfies requested range '${requestedRange}')`;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (packageData.oldVersion && semver.valid(packageData.version) && semver.valid(packageData.oldVersion)) {
|
|
25
|
+
if (semver.gt(packageData.version, packageData.oldVersion)) {
|
|
26
|
+
return ` [UPGRADE] ${name}: ${packageData.oldVersion} -> ${packageData.version} (to resolve conflict)`;
|
|
27
|
+
} else if (semver.lt(packageData.version, packageData.oldVersion)) {
|
|
28
|
+
return ` [DOWNGRADE] ${name}: ${packageData.oldVersion} -> ${packageData.version} (to resolve conflict)`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return ` [OK] ${name}: ${packageData.version} (requested by ${packageData.requestedBy || 'ROOT'})`;
|
|
33
|
+
}
|
|
34
|
+
|
|
8
35
|
async function runCli() {
|
|
9
36
|
const targetPath = process.argv[2] || "./package.json";
|
|
10
37
|
const absolutePath = path.resolve(process.cwd(), targetPath);
|
|
@@ -44,7 +71,8 @@ async function runCli() {
|
|
|
44
71
|
|
|
45
72
|
console.log("\n========== RESOLVED DEPENDENCY SOLUTION ==========\n");
|
|
46
73
|
for (const [name, packageData] of solution) {
|
|
47
|
-
|
|
74
|
+
const requestedRange = dependencies[name];
|
|
75
|
+
console.log(formatSolutionLine(name, packageData, requestedRange));
|
|
48
76
|
}
|
|
49
77
|
console.log();
|
|
50
78
|
}
|