dpdm 3.10.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":"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"}
1
+ {"version":3,"file":"dpdm.js","sourceRoot":"","sources":["../../src/bin/dpdm.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -25,7 +25,7 @@ export interface Dependency {
25
25
  * 1. id === null: cannot resolve
26
26
  * 2. tree[id] === null: ignored
27
27
  */
28
- export declare type DependencyTree = Record<string, ReadonlyArray<Dependency> | null>;
28
+ export type DependencyTree = Record<string, ReadonlyArray<Dependency> | null>;
29
29
  export interface OutputResult {
30
30
  entries: string[];
31
31
  tree: DependencyTree;
package/lib/utils.d.ts CHANGED
@@ -8,7 +8,7 @@ export declare const glob: typeof G.__promisify__;
8
8
  export declare const defaultOptions: ParseOptions;
9
9
  export declare function normalizeOptions(options: Partial<ParseOptions>): ParseOptions;
10
10
  export declare function appendSuffix(request: string, extensions: string[]): Promise<string | null>;
11
- export declare type Resolver = (context: string, request: string, extensions: string[]) => Promise<string | null>;
11
+ export type Resolver = (context: string, request: string, extensions: string[]) => Promise<string | null>;
12
12
  export declare const simpleResolver: Resolver;
13
13
  export declare function shortenTree(context: string, tree: DependencyTree): DependencyTree;
14
14
  export declare function parseCircular(tree: DependencyTree): string[][];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dpdm",
3
- "version": "3.10.0",
3
+ "version": "3.12.0",
4
4
  "description": "Analyze circular dependencies in your JavaScript/TypeScript projects.",
5
5
  "keywords": [
6
6
  "circular",
@@ -50,27 +50,27 @@
50
50
  },
51
51
  "license": "MIT",
52
52
  "devDependencies": {
53
- "@types/jest": "^28.1.6",
54
- "husky": "^8.0.1",
55
- "jest": "^28.1.3",
53
+ "@types/jest": "^29.2.5",
54
+ "husky": "^8.0.3",
55
+ "jest": "^29.3.1",
56
56
  "npm-run-all": "^4.1.5",
57
- "prettier": "^2.7.1",
57
+ "prettier": "^2.8.3",
58
58
  "pretty-quick": "^3.1.3",
59
- "rollup": "^2.77.0",
60
- "ts-jest": "^28.0.7",
59
+ "rollup": "^3.10.0",
60
+ "ts-jest": "^29.0.5",
61
61
  "ts-node": "^10.9.1"
62
62
  },
63
63
  "dependencies": {
64
- "@types/fs-extra": "^9.0.13",
65
- "@types/glob": "^7.2.0",
66
- "@types/yargs": "^17.0.10",
64
+ "@types/fs-extra": "^11.0.1",
65
+ "@types/glob": "^8.0.0",
66
+ "@types/yargs": "^17.0.19",
67
67
  "chalk": "^4.1.2",
68
- "fs-extra": "^10.1.0",
69
- "glob": "^8.0.3",
68
+ "fs-extra": "^11.1.0",
69
+ "glob": "^8.1.0",
70
70
  "ora": "^5.4.1",
71
- "tslib": "^2.4.0",
72
- "typescript": "^4.7.4",
73
- "yargs": "^17.5.1"
71
+ "tslib": "^2.4.1",
72
+ "typescript": "^4.9.4",
73
+ "yargs": "^17.6.2"
74
74
  },
75
75
  "prettier": {
76
76
  "printWidth": 80,
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':