dpdm 3.11.0 → 3.12.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/README.md CHANGED
@@ -76,46 +76,52 @@
76
76
  dpdm -T ./src/index.ts
77
77
  ```
78
78
 
79
+ 5. Find unused files by `index.js` in `src` directory:
80
+
81
+ ```bash
82
+ dpdm --no-tree --no-warning --no-circular --detect-unused-files-from 'src/**/*.*' 'index.js'
83
+ ```
84
+
79
85
  ### Options
80
86
 
81
87
  ```bash
82
88
  $ dpdm --help
83
- dpdm [options] <files...>
89
+ dpdm.ts [options] <files...>
84
90
 
85
91
  Analyze the files' dependencies.
86
92
 
87
93
  Positionals:
88
- files The file paths or globs [string]
94
+ files The file paths or globs [string]
89
95
 
90
96
  Options:
91
- --version Show version number [boolean]
92
- --context the context directory to shorten path, default is current
93
- directory [string]
94
- --extensions, --ext comma separated extensions to resolve
95
- [string] [default: ".ts,.tsx,.mjs,.js,.jsx,.json"]
96
- --js comma separated extensions indicate the file is js like
97
- [string] [default: ".ts,.tsx,.mjs,.js,.jsx"]
98
- --include included filenames regexp in string, default includes all files
99
- [string] [default: ".*"]
100
- --exclude excluded filenames regexp in string, set as empty string to
101
- include all files [string] [default: "node_modules"]
102
- -o, --output output json to file [string]
103
- --tree print tree to stdout [boolean] [default: true]
104
- --circular print circular to stdout [boolean] [default: true]
105
- --warning print warning to stdout [boolean] [default: true]
106
- --tsconfig the tsconfig path, which is used for resolve path alias,
107
- default is tsconfig.json if it exists in context directory
108
- [string]
109
- -T, --transform transform typescript modules to javascript before analyze, it
110
- allows you to omit types dependency in typescript
111
- [boolean] [default: false]
112
- --exit-code exit with specified code, the value format is CASE:CODE,
113
- `circular` is the only supported CASE, CODE should be a integer
114
- between 0 and 128. For example: `dpdm --exit-code circular:1`
115
- the program will exit with code 1 if circular dependency found.
116
- [string]
117
- --progress show progress bar [boolean] [default: true]
118
- -h, --help Show help [boolean]
97
+ --version Show version number [boolean]
98
+ --context the context directory to shorten path, default is current
99
+ directory [string]
100
+ --extensions, --ext comma separated extensions to resolve
101
+ [string] [default: ".ts,.tsx,.mjs,.js,.jsx,.json"]
102
+ --js comma separated extensions indicate the file is js like
103
+ [string] [default: ".ts,.tsx,.mjs,.js,.jsx"]
104
+ --include included filenames regexp in string, default includes all files
105
+ [string] [default: ".*"]
106
+ --exclude excluded filenames regexp in string, set as empty string to
107
+ include all files [string] [default: "node_modules"]
108
+ -o, --output output json to file [string]
109
+ --tree print tree to stdout [boolean] [default: true]
110
+ --circular print circular to stdout [boolean] [default: true]
111
+ --warning print warning to stdout [boolean] [default: true]
112
+ --tsconfig the tsconfig path, which is used for resolve path alias, default
113
+ is tsconfig.json if it exists in context directory [string]
114
+ -T, --transform transform typescript modules to javascript before analyze, it
115
+ allows you to omit types dependency in typescript
116
+ [boolean] [default: false]
117
+ --exit-code exit with specified code, the value format is CASE:CODE,
118
+ `circular` is the only supported CASE, CODE should be a integer
119
+ between 0 and 128. For example: `dpdm --exit-code circular:1` the
120
+ program will exit with code 1 if circular dependency found.
121
+ [string]
122
+ --progress show progress bar [boolean] [default: true]
123
+ --detect-unused-files-from this file is a glob, used for finding unused files [string]
124
+ -h, --help Show help [boolean]
119
125
  ```
120
126
 
121
127
  ### Example output
package/lib/bin/dpdm.js CHANGED
@@ -90,6 +90,10 @@ function main() {
90
90
  type: 'boolean',
91
91
  desc: 'show progress bar',
92
92
  default: process.stdout.isTTY && !process.env.CI,
93
+ })
94
+ .option('detect-unused-files-from', {
95
+ type: 'string',
96
+ desc: 'this file is a glob, used for finding unused files',
93
97
  })
94
98
  .alias('h', 'help')
95
99
  .wrap(Math.min(yargs_1.default.terminalWidth(), 100)).argv;
@@ -174,6 +178,25 @@ function main() {
174
178
  console.log((0, utils_1.prettyWarning)((0, utils_1.parseWarnings)(tree)));
175
179
  console.log('');
176
180
  }
181
+ if (argv.detectUnusedFilesFrom) {
182
+ const allFiles = yield (0, utils_1.glob)(argv.detectUnusedFilesFrom);
183
+ const shortAllFiles = allFiles.map((v) => path_1.default.relative(context, v));
184
+ const unusedFiles = shortAllFiles.filter((v) => !(v in tree)).sort();
185
+ console.log(chalk_1.default.bold.cyan('• Unused files'));
186
+ if (unusedFiles.length === 0) {
187
+ console.log(chalk_1.default.bold.green(' ✅ Congratulations, no unused file was found in your project. (total: ' +
188
+ allFiles.length +
189
+ ', used: ' +
190
+ Object.keys(tree).length +
191
+ ')'));
192
+ }
193
+ else {
194
+ const len = unusedFiles.length.toString().length;
195
+ unusedFiles.forEach((f, i) => {
196
+ console.log('%s) %s', i.toString().padStart(len, '0'), f);
197
+ });
198
+ }
199
+ }
177
200
  for (const [label, code] of exitCodes) {
178
201
  switch (label) {
179
202
  case 'circular':
@@ -1 +1 @@
1
- {"version":3,"file":"dpdm.js","sourceRoot":"","sources":["../../src/bin/dpdm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dpdm.js","sourceRoot":"","sources":["../../src/bin/dpdm.ts"],"names":[],"mappings":"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"}
package/lib/bin/dpdm.mjs CHANGED
@@ -88,6 +88,10 @@ function main() {
88
88
  type: 'boolean',
89
89
  desc: 'show progress bar',
90
90
  default: process.stdout.isTTY && !process.env.CI,
91
+ })
92
+ .option('detect-unused-files-from', {
93
+ type: 'string',
94
+ desc: 'this file is a glob, used for finding unused files',
91
95
  })
92
96
  .alias('h', 'help')
93
97
  .wrap(Math.min(yargs.terminalWidth(), 100)).argv;
@@ -172,6 +176,25 @@ function main() {
172
176
  console.log(prettyWarning(parseWarnings(tree)));
173
177
  console.log('');
174
178
  }
179
+ if (argv.detectUnusedFilesFrom) {
180
+ const allFiles = yield glob(argv.detectUnusedFilesFrom);
181
+ const shortAllFiles = allFiles.map((v) => path.relative(context, v));
182
+ const unusedFiles = shortAllFiles.filter((v) => !(v in tree)).sort();
183
+ console.log(chalk.bold.cyan('• Unused files'));
184
+ if (unusedFiles.length === 0) {
185
+ console.log(chalk.bold.green(' ✅ Congratulations, no unused file was found in your project. (total: ' +
186
+ allFiles.length +
187
+ ', used: ' +
188
+ Object.keys(tree).length +
189
+ ')'));
190
+ }
191
+ else {
192
+ const len = unusedFiles.length.toString().length;
193
+ unusedFiles.forEach((f, i) => {
194
+ console.log('%s) %s', i.toString().padStart(len, '0'), f);
195
+ });
196
+ }
197
+ }
175
198
  for (const [label, code] of exitCodes) {
176
199
  switch (label) {
177
200
  case 'circular':
@@ -1 +1 @@
1
- {"version":3,"file":"dpdm.js","sourceRoot":"","sources":["../../src/bin/dpdm.ts"],"names":[],"mappings":";AACA;;;GAGG;;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EACL,cAAc,EACd,IAAI,EACJ,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,SAAe,IAAI;;QACjB,MAAM,IAAI,GAAG,MAAM,KAAK;aACrB,MAAM,EAAE;aACR,KAAK,CACJ,yBAAyB,EACzB,kCAAkC,EAClC,CAAC,KAAK,EAAE,EAAE;YACR,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE;gBAC/B,WAAW,EAAE,yBAAyB;gBACtC,YAAY,EAAE,IAAI;gBAClB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC,CACF;aACA,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,qEAAqE;SAC5E,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YACpB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,uCAAuC;YAC7C,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SAC7D,CAAC;aACD,MAAM,CAAC,IAAI,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,yDAAyD;YAC/D,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;SACrC,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,iEAAiE;YACvE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM;SACvC,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,+EAA+E;YACrF,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM;SACvC,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YAChB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,qBAAqB;SAC5B,CAAC;aACD,MAAM,CAAC,MAAM,EAAE;YACd,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,IAAI;SACd,CAAC;aACD,MAAM,CAAC,UAAU,EAAE;YAClB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,IAAI;SACd,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,IAAI;SACd,CAAC;aACD,MAAM,CAAC,UAAU,EAAE;YAClB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,qHAAqH;SAC5H,CAAC;aACD,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,iHAAiH;YACvH,OAAO,EAAE,cAAc,CAAC,SAAS;YACjC,KAAK,EAAE,GAAG;SACX,CAAC;aACD,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,IAAI,EACF,kGAAkG;gBAClG,8CAA8C;gBAC9C,4GAA4G;SAC/G,CAAC;aACD,MAAM,CAAC,UAAU,EAAE;YAClB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;SACjD,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAEnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAiB,CAAC;QAErC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACxC,MAAM,SAAS,GAAuB,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC7B,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;iBACrD;gBACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBACzB,MAAM,IAAI,SAAS,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC;iBACzD;gBACD,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;SACJ;QAED,MAAM,CAAC,GAAG,GAAG,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;QAEzD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAE9C,SAAS,UAAU,CAAC,KAAsB,EAAE,MAAc;YACxD,QAAQ,KAAK,EAAE;gBACb,KAAK,OAAO;oBACV,KAAK,IAAI,CAAC,CAAC;oBACX,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBACzC,MAAM;gBACR,KAAK,KAAK;oBACR,KAAK,IAAI,CAAC,CAAC;oBACX,MAAM;aACT;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,eAAe,OAAO,KAAK,CAAC;gBACvD,CAAC,CAAC,MAAM,EAAE,CAAC;aACZ;QACH,CAAC;QAED,MAAM,OAAO,GAAiB;YAC5B,OAAO;YACP,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;YACtC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;YACtB,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;YACzC,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU;SACX,CAAC;QAEF,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;aAChC,IAAI,CAAC,CAAO,IAAI,EAAE,EAAE;YACnB,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,KAAK,iBAAiB,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,EAAU;iBACZ,MAAM,CAAC,GAAG,WAAW,CAAC;iBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,cAAc,CACZ,OAAO,CAAC,OAAQ,EAChB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAQ,EAAE,IAAI,CAAC,EACjC,OAAO,CAAC,UAAU,CACnB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAClE,CACJ,CAAC;YACF,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,MAAM,EAAE,CAAC,UAAU,CACjB,IAAI,CAAC,MAAM,EACX,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAC5B,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAC;aACH;YACD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACjB;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBACvD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC1B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,KAAK,CACd,wEAAwE,CACzE,CACF,CAAC;iBACH;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;iBACxC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACjB;YACD,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACjB;YACD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE;gBACrC,QAAQ,KAAK,EAAE;oBACb,KAAK,UAAU;wBACb,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;4BACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBACpB;iBACJ;aACF;QACH,CAAC,CAAA,CAAC;aACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YAClB,CAAC,CAAC,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;CAAA;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dpdm.js","sourceRoot":"","sources":["../../src/bin/dpdm.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dpdm",
3
- "version": "3.11.0",
3
+ "version": "3.12.0",
4
4
  "description": "Analyze circular dependencies in your JavaScript/TypeScript projects.",
5
5
  "keywords": [
6
6
  "circular",
package/src/bin/dpdm.ts CHANGED
@@ -104,6 +104,10 @@ async function main() {
104
104
  desc: 'show progress bar',
105
105
  default: process.stdout.isTTY && !process.env.CI,
106
106
  })
107
+ .option('detect-unused-files-from', {
108
+ type: 'string',
109
+ desc: 'this file is a glob, used for finding unused files',
110
+ })
107
111
  .alias('h', 'help')
108
112
  .wrap(Math.min(yargs.terminalWidth(), 100)).argv;
109
113
 
@@ -211,6 +215,28 @@ async function main() {
211
215
  console.log(prettyWarning(parseWarnings(tree)));
212
216
  console.log('');
213
217
  }
218
+ if (argv.detectUnusedFilesFrom) {
219
+ const allFiles = await glob(argv.detectUnusedFilesFrom);
220
+ const shortAllFiles = allFiles.map((v) => path.relative(context, v));
221
+ const unusedFiles = shortAllFiles.filter((v) => !(v in tree)).sort();
222
+ console.log(chalk.bold.cyan('• Unused files'));
223
+ if (unusedFiles.length === 0) {
224
+ console.log(
225
+ chalk.bold.green(
226
+ ' ✅ Congratulations, no unused file was found in your project. (total: ' +
227
+ allFiles.length +
228
+ ', used: ' +
229
+ Object.keys(tree).length +
230
+ ')',
231
+ ),
232
+ );
233
+ } else {
234
+ const len = unusedFiles.length.toString().length;
235
+ unusedFiles.forEach((f, i) => {
236
+ console.log('%s) %s', i.toString().padStart(len, '0'), f);
237
+ });
238
+ }
239
+ }
214
240
  for (const [label, code] of exitCodes) {
215
241
  switch (label) {
216
242
  case 'circular':