Skip to content

Commit 04cde8a

Browse files
feat(verbose): Turn off verbose logging by default
enable --verbose to show peer dependencies that are already met
1 parent 59ddd72 commit 04cde8a

File tree

2 files changed

+26
-14
lines changed

2 files changed

+26
-14
lines changed

src/checkPeerDependencies.ts

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,44 +22,48 @@ function getAllNestedPeerDependencies(options: CliOptions) {
2222

2323
let recursiveCount = 0;
2424

25-
const reportPeerDependencyStatusByDepender = (dep: Dependency) => {
25+
const reportPeerDependencyStatusByDepender = (dep: Dependency, options: CliOptions) => {
2626
if (dep.semverSatisfies) {
27-
console.log(`✅ ${dep.depender}@${dep.dependerVersion} requires ${dep.name} ${dep.version} (${dep.installedVersion} is installed)`);
27+
if (options.verbose) {
28+
console.log(` ✅ ${dep.depender}@${dep.dependerVersion} requires ${dep.name} ${dep.version} (${dep.installedVersion} is installed)`);
29+
}
2830
} else if (dep.isYalc) {
29-
console.log(`☑️ ${dep.depender}@${dep.dependerVersion} requires ${dep.name} ${dep.version} (${dep.installedVersion} is installed via yalc)`);
31+
console.log(` ☑️ ${dep.depender}@${dep.dependerVersion} requires ${dep.name} ${dep.version} (${dep.installedVersion} is installed via yalc)`);
3032
} else if (dep.installedVersion) {
31-
console.log(`❌ ${dep.depender}@${dep.dependerVersion} requires ${dep.name} ${dep.version} (${dep.installedVersion} is installed)`);
33+
console.log(` ${dep.depender}@${dep.dependerVersion} requires ${dep.name} ${dep.version} (${dep.installedVersion} is installed)`);
3234
} else {
33-
console.log(`❌ ${dep.depender}@${dep.dependerVersion} requires ${dep.name} ${dep.version} (${dep.name} is not installed)`);
35+
console.log(` ${dep.depender}@${dep.dependerVersion} requires ${dep.name} ${dep.version} (${dep.name} is not installed)`);
3436
}
3537
};
3638

37-
const reportPeerDependencyStatusByDependee = (dep: Dependency) => {
39+
const reportPeerDependencyStatusByDependee = (dep: Dependency, options: CliOptions) => {
3840
if (dep.semverSatisfies) {
39-
console.log(`✅ ${dep.name} ${dep.version} is required by ${dep.depender}@${dep.dependerVersion} (${dep.installedVersion} is installed)`);
41+
if (options.verbose) {
42+
console.log(` ✅ ${dep.name} ${dep.version} is required by ${dep.depender}@${dep.dependerVersion} (${dep.installedVersion} is installed)`);
43+
}
4044
} else if (dep.isYalc) {
41-
console.log(`☑️ ${dep.name} ${dep.version} is required by ${dep.depender}@${dep.dependerVersion} (${dep.installedVersion} is installed via yalc)`);
45+
console.log(` ☑️ ${dep.name} ${dep.version} is required by ${dep.depender}@${dep.dependerVersion} (${dep.installedVersion} is installed via yalc)`);
4246
} else if (dep.installedVersion) {
43-
console.log(`❌ ${dep.name} ${dep.version} is required by ${dep.depender}@${dep.dependerVersion} (${dep.installedVersion} is installed)`);
47+
console.log(` ${dep.name} ${dep.version} is required by ${dep.depender}@${dep.dependerVersion} (${dep.installedVersion} is installed)`);
4448
} else {
45-
console.log(`❌ ${dep.name} ${dep.version} is required by ${dep.depender}@${dep.dependerVersion} (${dep.name} is not installed)`);
49+
console.log(` ${dep.name} ${dep.version} is required by ${dep.depender}@${dep.dependerVersion} (${dep.name} is not installed)`);
4650
}
4751
};
4852

4953
export function checkPeerDependencies(packageManager: string, options: CliOptions) {
5054
const allNestedPeerDependencies = getAllNestedPeerDependencies(options);
5155
if (options.orderBy === 'depender') {
5256
allNestedPeerDependencies.sort((a, b) => `${a.depender}${a.name}`.localeCompare(`${b.depender}${b.name}`))
53-
allNestedPeerDependencies.forEach(reportPeerDependencyStatusByDepender);
57+
allNestedPeerDependencies.forEach(dep => reportPeerDependencyStatusByDepender(dep, options));
5458
} else if (options.orderBy === 'dependee') {
5559
allNestedPeerDependencies.sort((a, b) => `${a.name}${a.depender}`.localeCompare(`${b.name}${b.depender}`))
56-
allNestedPeerDependencies.forEach(reportPeerDependencyStatusByDependee);
60+
allNestedPeerDependencies.forEach(dep => reportPeerDependencyStatusByDependee(dep, options));
5761
}
5862

5963
const problems = allNestedPeerDependencies.filter(dep => !dep.semverSatisfies && !dep.isYalc);
6064

6165
if (!problems.length) {
62-
console.log('No problems found!');
66+
console.log(' ✅ All peer dependencies are met');
6367
return;
6468
}
6569

@@ -76,7 +80,7 @@ export function checkPeerDependencies(packageManager: string, options: CliOption
7680
const errorPrefix = `Unable to find a version of ${name} that satisfies the following peerDependencies:`;
7781
const peerDepRanges = allNestedPeerDependencies.filter(dep => dep.name === name)
7882
.reduce((acc, dep) => acc.includes(dep.version) ? acc : acc.concat(dep.version), []);
79-
console.error(`❌ ${errorPrefix} ${peerDepRanges.join(" and ")}`)
83+
console.error(` ${errorPrefix} ${peerDepRanges.join(" and ")}`)
8084
});
8185

8286

src/cli.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,17 @@ const options = yarrrrgs
2525
})
2626
.option('debug', {
2727
boolean: true,
28+
default: false,
2829
description: 'Print debugging information',
2930
})
31+
.option('verbose', {
32+
boolean: true,
33+
default: false,
34+
description: 'Prints every peer dependency, even those that are met',
35+
})
3036
.option('install', {
3137
boolean: true,
38+
default: false,
3239
description: 'Install missing or incorrect peerDependencies',
3340
})
3441
.check(argv => {
@@ -41,6 +48,7 @@ const options = yarrrrgs
4148
export interface CliOptions {
4249
help: boolean;
4350
yarn: boolean;
51+
verbose: boolean;
4452
debug: boolean;
4553
npm: boolean;
4654
orderBy: 'depender' | 'dependee';

0 commit comments

Comments
 (0)