dpdm 4.0.1 → 4.2.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 +45 -12
- package/lib/bin/dpdm.js +63 -11
- package/lib/bin/dpdm.js.map +1 -1
- package/lib/bin/dpdm.mjs +64 -12
- package/lib/bin/dpdm.mjs.map +1 -1
- package/lib/parser.js +3 -4
- package/lib/parser.js.map +1 -1
- package/lib/parser.mjs +3 -4
- package/lib/parser.mjs.map +1 -1
- package/lib/parser.spec.d.ts +5 -0
- package/lib/parser.spec.js +105 -0
- package/lib/parser.spec.js.map +1 -0
- package/lib/parser.spec.mjs +103 -0
- package/lib/parser.spec.mjs.map +1 -0
- package/lib/types.d.ts +1 -0
- package/lib/utils.d.ts +5 -1
- package/lib/utils.js +122 -6
- package/lib/utils.js.map +1 -1
- package/lib/utils.mjs +119 -6
- package/lib/utils.mjs.map +1 -1
- package/lib/utils.spec.js +50 -3
- package/lib/utils.spec.js.map +1 -1
- package/lib/utils.spec.mjs +50 -3
- package/lib/utils.spec.mjs.map +1 -1
- package/package.json +2 -1
- package/src/bin/dpdm.ts +91 -17
- package/src/parser.spec.ts +134 -0
- package/src/parser.ts +6 -7
- package/src/types.ts +1 -0
- package/src/utils.spec.ts +64 -3
- package/src/utils.ts +147 -5
package/README.md
CHANGED
|
@@ -92,6 +92,24 @@
|
|
|
92
92
|
dpdm --skip-dynamic-imports circular index.js
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
+
7. Ignore specified imports when finding circular dependencies:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
dpdm ./src/index.js --skip-imports 'src/a.js:.*' src/c.js:src/d.js
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
8. Analyze files from another working directory:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
dpdm --cwd ../other-project ./src/index.ts
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
9. Show dependencies and circular dependencies grouped by package:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
dpdm --group-by-package './packages/*/src/index.ts'
|
|
111
|
+
```
|
|
112
|
+
|
|
95
113
|
### Options
|
|
96
114
|
|
|
97
115
|
```bash
|
|
@@ -104,8 +122,9 @@ Positionals:
|
|
|
104
122
|
|
|
105
123
|
Options:
|
|
106
124
|
--version Show version number [boolean]
|
|
107
|
-
--context the context directory to shorten path, default is
|
|
108
|
-
|
|
125
|
+
--context the context directory to shorten path, default is cwd [string]
|
|
126
|
+
--cwd the working directory used to match files and resolve relative
|
|
127
|
+
paths, default is current directory [string]
|
|
109
128
|
--extensions, --ext comma separated extensions to resolve
|
|
110
129
|
[string] [default: ".ts,.tsx,.mjs,.js,.jsx,.json"]
|
|
111
130
|
--js comma separated extensions indicate the file is js like
|
|
@@ -132,6 +151,10 @@ Options:
|
|
|
132
151
|
--detect-unused-files-from this file is a glob, used for finding unused files. [string]
|
|
133
152
|
--skip-dynamic-imports Skip parse import(...) statement.
|
|
134
153
|
[string] [choices: "tree", "circular"]
|
|
154
|
+
--skip-imports Skip import edges from circular checks. Values are regexp
|
|
155
|
+
ISSUER:DEPENDENCY pairs. [array]
|
|
156
|
+
--group-by-package print dependencies and circulars grouped by nearest package.json
|
|
157
|
+
[boolean]
|
|
135
158
|
-h, --help Show help [boolean]
|
|
136
159
|
```
|
|
137
160
|
|
|
@@ -170,15 +193,16 @@ parseDependencyTree('./index', {
|
|
|
170
193
|
* the parse options
|
|
171
194
|
*/
|
|
172
195
|
export interface ParseOptions {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
196
|
+
cwd: string;
|
|
197
|
+
context: string;
|
|
198
|
+
extensions: string[];
|
|
199
|
+
js: string[];
|
|
200
|
+
include: RegExp;
|
|
201
|
+
exclude: RegExp;
|
|
202
|
+
tsconfig: string | undefined;
|
|
203
|
+
onProgress: (event: 'start' | 'end', target: string) => void;
|
|
204
|
+
transform: boolean;
|
|
205
|
+
skipDynamicImports: boolean;
|
|
182
206
|
}
|
|
183
207
|
|
|
184
208
|
export enum DependencyKind {
|
|
@@ -200,7 +224,16 @@ parseDependencyTree('./index', {
|
|
|
200
224
|
export type DependencyTree = Record<string, Dependency[] | null>;
|
|
201
225
|
```
|
|
202
226
|
|
|
203
|
-
2. `
|
|
227
|
+
2. `groupDependencyTreeByPackage(tree, context)`: group dependencies by nearest package.json
|
|
228
|
+
|
|
229
|
+
```typescript jsx
|
|
230
|
+
export declare function groupDependencyTreeByPackage(
|
|
231
|
+
tree: DependencyTree,
|
|
232
|
+
context: string,
|
|
233
|
+
): DependencyTree;
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
3. `parseCircular(tree)`: parse circulars in dependency tree
|
|
204
237
|
|
|
205
238
|
```typescript jsx
|
|
206
239
|
export declare function parseCircular(tree: DependencyTree): string[][];
|
package/lib/bin/dpdm.js
CHANGED
|
@@ -15,6 +15,28 @@ const yargs_1 = tslib_1.__importDefault(require("yargs"));
|
|
|
15
15
|
const parser_1 = require("../parser");
|
|
16
16
|
const utils_1 = require("../utils");
|
|
17
17
|
const helpers_1 = require("yargs/helpers");
|
|
18
|
+
function splitSkipImportValue(value) {
|
|
19
|
+
return value.split(',').filter(Boolean);
|
|
20
|
+
}
|
|
21
|
+
function normalizeCircularId(context, id) {
|
|
22
|
+
const fullPath = path_1.default.isAbsolute(id) ? id : path_1.default.resolve(context, id);
|
|
23
|
+
return path_1.default.relative(context, fullPath);
|
|
24
|
+
}
|
|
25
|
+
function resolveFromCwd(cwd, target) {
|
|
26
|
+
return path_1.default.resolve(cwd, target);
|
|
27
|
+
}
|
|
28
|
+
function parseSkipImports(skipImports, context) {
|
|
29
|
+
return skipImports.map((item) => {
|
|
30
|
+
const parts = item.split(':');
|
|
31
|
+
if (parts.length !== 2 || !parts[0] || !parts[1]) {
|
|
32
|
+
throw new TypeError(`skip import should be in the format ISSUER:DEPENDENCY`);
|
|
33
|
+
}
|
|
34
|
+
return [
|
|
35
|
+
normalizeCircularId(context, parts[0]),
|
|
36
|
+
normalizeCircularId(context, parts[1]),
|
|
37
|
+
];
|
|
38
|
+
});
|
|
39
|
+
}
|
|
18
40
|
function main() {
|
|
19
41
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
20
42
|
const y = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv));
|
|
@@ -30,7 +52,11 @@ function main() {
|
|
|
30
52
|
})
|
|
31
53
|
.option('context', {
|
|
32
54
|
type: 'string',
|
|
33
|
-
desc: 'the context directory to shorten path, default is
|
|
55
|
+
desc: 'the context directory to shorten path, default is cwd',
|
|
56
|
+
})
|
|
57
|
+
.option('cwd', {
|
|
58
|
+
type: 'string',
|
|
59
|
+
desc: 'the working directory used to match files and resolve relative paths, default is current directory',
|
|
34
60
|
})
|
|
35
61
|
.option('extensions', {
|
|
36
62
|
alias: 'ext',
|
|
@@ -102,6 +128,16 @@ function main() {
|
|
|
102
128
|
type: 'string',
|
|
103
129
|
choices: ['tree', 'circular'],
|
|
104
130
|
desc: 'Skip parse import(...) statement.',
|
|
131
|
+
})
|
|
132
|
+
.option('skip-imports', {
|
|
133
|
+
type: 'string',
|
|
134
|
+
array: true,
|
|
135
|
+
desc: 'Skip import edges from circular checks. Values are regexp ISSUER:DEPENDENCY pairs.',
|
|
136
|
+
})
|
|
137
|
+
.option('group-by-package', {
|
|
138
|
+
type: 'boolean',
|
|
139
|
+
desc: 'print dependencies and circulars grouped by nearest package.json',
|
|
140
|
+
default: false,
|
|
105
141
|
})
|
|
106
142
|
.alias('h', 'help')
|
|
107
143
|
.wrap(Math.min(y.terminalWidth(), 100))
|
|
@@ -130,7 +166,9 @@ function main() {
|
|
|
130
166
|
let total = 0;
|
|
131
167
|
let ended = 0;
|
|
132
168
|
let current = '';
|
|
133
|
-
const
|
|
169
|
+
const cwd = path_1.default.resolve(argv.cwd || process.cwd());
|
|
170
|
+
const context = path_1.default.resolve(cwd, argv.context || '.');
|
|
171
|
+
const skippedImports = parseSkipImports((argv.skipImports || []).flatMap(splitSkipImportValue), context);
|
|
134
172
|
function onProgress(event, target) {
|
|
135
173
|
switch (event) {
|
|
136
174
|
case 'start':
|
|
@@ -147,6 +185,7 @@ function main() {
|
|
|
147
185
|
}
|
|
148
186
|
}
|
|
149
187
|
const options = {
|
|
188
|
+
cwd,
|
|
150
189
|
context,
|
|
151
190
|
extensions: argv.extensions.split(','),
|
|
152
191
|
js: argv.js.split(','),
|
|
@@ -163,21 +202,34 @@ function main() {
|
|
|
163
202
|
throw new Error(`No entry files were matched.`);
|
|
164
203
|
}
|
|
165
204
|
o.succeed(`[${ended}/${total}] Analyze done!`);
|
|
166
|
-
const entriesDeep = yield Promise.all(files.map((g) => G.glob(g)));
|
|
205
|
+
const entriesDeep = yield Promise.all(files.map((g) => G.glob(g, { cwd })));
|
|
167
206
|
const entries = yield Promise.all(Array()
|
|
168
207
|
.concat(...entriesDeep)
|
|
169
|
-
.map((name) =>
|
|
170
|
-
|
|
208
|
+
.map((name) => {
|
|
209
|
+
const fullName = resolveFromCwd(cwd, name);
|
|
210
|
+
return (0, utils_1.simpleResolver)(cwd, fullName, options.extensions).then((id) => path_1.default.relative(context, id || fullName));
|
|
211
|
+
}));
|
|
212
|
+
const displayedTree = argv.groupByPackage
|
|
213
|
+
? (0, utils_1.groupDependencyTreeByPackage)(tree, context)
|
|
214
|
+
: tree;
|
|
215
|
+
const displayedEntries = argv.groupByPackage
|
|
216
|
+
? (0, utils_1.groupEntriesByPackage)(entries, context)
|
|
217
|
+
: entries;
|
|
218
|
+
const circulars = (0, utils_1.parseCircular)(displayedTree, argv.skipDynamicImports === 'circular', skippedImports);
|
|
171
219
|
if (argv.output) {
|
|
172
|
-
yield fs_extra_1.default.outputJSON(argv.output, { entries, tree, circulars }, { spaces: 2 });
|
|
220
|
+
yield fs_extra_1.default.outputJSON(argv.output, { entries: displayedEntries, tree: displayedTree, circulars }, { spaces: 2 });
|
|
173
221
|
}
|
|
174
222
|
if (argv.tree) {
|
|
175
|
-
console.log(chalk_1.default.bold(
|
|
176
|
-
|
|
223
|
+
console.log(chalk_1.default.bold(argv.groupByPackage
|
|
224
|
+
? '• Package Dependencies Tree'
|
|
225
|
+
: '• Dependencies Tree'));
|
|
226
|
+
console.log((0, utils_1.prettyTree)(displayedTree, displayedEntries));
|
|
177
227
|
console.log('');
|
|
178
228
|
}
|
|
179
229
|
if (argv.circular) {
|
|
180
|
-
console.log(chalk_1.default.bold[circulars.length === 0 ? 'green' : 'red'](
|
|
230
|
+
console.log(chalk_1.default.bold[circulars.length === 0 ? 'green' : 'red'](argv.groupByPackage
|
|
231
|
+
? '• Package Circular Dependencies'
|
|
232
|
+
: '• Circular Dependencies'));
|
|
181
233
|
if (circulars.length === 0) {
|
|
182
234
|
console.log(chalk_1.default.bold.green(' ✅ Congratulations, no circular dependency was found in your project.'));
|
|
183
235
|
}
|
|
@@ -192,8 +244,8 @@ function main() {
|
|
|
192
244
|
console.log('');
|
|
193
245
|
}
|
|
194
246
|
if (argv.detectUnusedFilesFrom) {
|
|
195
|
-
const allFiles = yield G.glob(argv.detectUnusedFilesFrom);
|
|
196
|
-
const shortAllFiles = allFiles.map((v) => path_1.default.relative(context, v));
|
|
247
|
+
const allFiles = yield G.glob(argv.detectUnusedFilesFrom, { cwd });
|
|
248
|
+
const shortAllFiles = allFiles.map((v) => path_1.default.relative(context, resolveFromCwd(cwd, v)));
|
|
197
249
|
const unusedFiles = shortAllFiles.filter((v) => !(v in tree)).sort();
|
|
198
250
|
console.log(chalk_1.default.bold.cyan('• Unused files'));
|
|
199
251
|
if (unusedFiles.length === 0) {
|
package/lib/bin/dpdm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dpdm.js","sourceRoot":"","sources":["../../src/bin/dpdm.ts"],"names":[],"mappings":";;AACA;;;GAGG;;;AAEH,0DAA0B;AAC1B,gEAA0B;AAC1B,gDAA0B;AAC1B,sDAAsB;AACtB,wDAAwB;AACxB,0DAA0B;AAC1B,sCAAgD;AAEhD,
|
|
1
|
+
{"version":3,"file":"dpdm.js","sourceRoot":"","sources":["../../src/bin/dpdm.ts"],"names":[],"mappings":";;AACA;;;GAGG;;;AAEH,0DAA0B;AAC1B,gEAA0B;AAC1B,gDAA0B;AAC1B,sDAAsB;AACtB,wDAAwB;AACxB,0DAA0B;AAC1B,sCAAgD;AAEhD,oCAWkB;AAElB,2CAAwC;AAExC,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,EAAU;IACtD,MAAM,QAAQ,GAAG,cAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtE,OAAO,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,MAAc;IACjD,OAAO,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CACvB,WAAqB,EACrB,OAAe;IAEf,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,SAAS,CACjB,uDAAuD,CACxD,CAAC;QACJ,CAAC;QACD,OAAO;YACL,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAe,IAAI;;QACjB,MAAM,CAAC,GAAG,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC;aACjB,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,uDAAuD;SAC9D,CAAC;aACD,MAAM,CAAC,KAAK,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,oGAAoG;SAC3G,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YACpB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,uCAAuC;YAC7C,OAAO,EAAE,sBAAc,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,sBAAc,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,sBAAc,CAAC,OAAO,CAAC,MAAM;SACvC,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,+EAA+E;YACrF,OAAO,EAAE,sBAAc,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,sBAAc,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,MAAM,CAAC,0BAA0B,EAAE;YAClC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,qDAAqD;SAC5D,CAAC;aACD,MAAM,CAAC,sBAAsB,EAAE;YAC9B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;YAC7B,IAAI,EAAE,mCAAmC;SAC1C,CAAC;aACD,MAAM,CAAC,cAAc,EAAE;YACtB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,oFAAoF;SAC3F,CAAC;aACD,MAAM,CAAC,kBAAkB,EAAE;YAC1B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,kEAAkE;YACxE,OAAO,EAAE,KAAK;SACf,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;aACtC,UAAU,EAAE,CAAC;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAiB,CAAC;QAErC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,eAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;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,CAAC;YACtB,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,CAAC;oBAC9B,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;gBACtD,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,SAAS,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC;gBAC1D,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,GAAG,IAAA,aAAG,EAAC,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,GAAG,GAAG,cAAI,CAAC,OAAO,CAAE,IAAI,CAAC,GAA0B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,gBAAgB,CACrC,CAAE,IAAI,CAAC,WAAoC,IAAI,EAAE,CAAC,CAAC,OAAO,CACxD,oBAAoB,CACrB,EACD,OAAO,CACR,CAAC;QAEF,SAAS,UAAU,CAAC,KAAsB,EAAE,MAAc;YACxD,QAAQ,KAAK,EAAE,CAAC;gBACd,KAAK,OAAO;oBACV,KAAK,IAAI,CAAC,CAAC;oBACX,OAAO,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBACzC,MAAM;gBACR,KAAK,KAAK;oBACR,KAAK,IAAI,CAAC,CAAC;oBACX,MAAM;YACV,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,eAAe,OAAO,KAAK,CAAC;gBACvD,CAAC,CAAC,MAAM,EAAE,CAAC;YACb,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAiB;YAC5B,GAAG;YACH,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,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,KAAK,MAAM;YACtD,UAAU;SACX,CAAC;QAEF,IAAA,4BAAmB,EAAC,KAAK,EAAE,OAAO,CAAC;aAChC,IAAI,CAAC,CAAO,IAAI,EAAE,EAAE;YACnB,IAAI,IAAA,eAAO,EAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YACD,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,KAAK,iBAAiB,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CACrC,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,EAAU;iBACZ,MAAM,CAAC,GAAG,WAAW,CAAC;iBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACZ,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC3C,OAAO,IAAA,sBAAc,EAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAC3D,CAAC,EAAE,EAAE,EAAE,CAAC,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,QAAQ,CAAC,CAC/C,CAAC;YACJ,CAAC,CAAC,CACL,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc;gBACvC,CAAC,CAAC,IAAA,oCAA4B,EAAC,IAAI,EAAE,OAAO,CAAC;gBAC7C,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc;gBAC1C,CAAC,CAAC,IAAA,6BAAqB,EAAC,OAAO,EAAE,OAAO,CAAC;gBACzC,CAAC,CAAC,OAAO,CAAC;YACZ,MAAM,SAAS,GAAG,IAAA,qBAAa,EAC7B,aAAa,EACb,IAAI,CAAC,kBAAkB,KAAK,UAAU,EACtC,cAAc,CACf,CAAC;YACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,kBAAE,CAAC,UAAU,CACjB,IAAI,CAAC,MAAM,EACX,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAC7D,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,IAAI,CAAC,cAAc;oBACjB,CAAC,CAAC,6BAA6B;oBAC/B,CAAC,CAAC,qBAAqB,CAC1B,CACF,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAU,EAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAClD,IAAI,CAAC,cAAc;oBACjB,CAAC,CAAC,iCAAiC;oBACnC,CAAC,CAAC,yBAAyB,CAC9B,CACF,CAAC;gBACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,KAAK,CACd,wEAAwE,CACzE,CACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAc,EAAC,SAAS,CAAC,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,IAAA,qBAAa,EAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnE,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAC/C,CAAC;gBACF,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC/C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,KAAK,CACd,yEAAyE;wBACvE,QAAQ,CAAC,MAAM;wBACf,UAAU;wBACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBACxB,GAAG,CACN,CACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;oBACjD,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5D,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;gBACtC,QAAQ,KAAK,EAAE,CAAC;oBACd,KAAK,UAAU;wBACb,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACrB,CAAC;gBACL,CAAC;YACH,CAAC;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"}
|
package/lib/bin/dpdm.mjs
CHANGED
|
@@ -11,8 +11,30 @@ import ora from 'ora';
|
|
|
11
11
|
import path from 'path';
|
|
12
12
|
import yargs from 'yargs';
|
|
13
13
|
import { parseDependencyTree } from '../parser';
|
|
14
|
-
import { defaultOptions, isEmpty, parseCircular, parseWarnings, prettyCircular, prettyTree, prettyWarning, simpleResolver, } from '../utils';
|
|
14
|
+
import { defaultOptions, groupDependencyTreeByPackage, groupEntriesByPackage, isEmpty, parseCircular, parseWarnings, prettyCircular, prettyTree, prettyWarning, simpleResolver, } from '../utils';
|
|
15
15
|
import { hideBin } from 'yargs/helpers';
|
|
16
|
+
function splitSkipImportValue(value) {
|
|
17
|
+
return value.split(',').filter(Boolean);
|
|
18
|
+
}
|
|
19
|
+
function normalizeCircularId(context, id) {
|
|
20
|
+
const fullPath = path.isAbsolute(id) ? id : path.resolve(context, id);
|
|
21
|
+
return path.relative(context, fullPath);
|
|
22
|
+
}
|
|
23
|
+
function resolveFromCwd(cwd, target) {
|
|
24
|
+
return path.resolve(cwd, target);
|
|
25
|
+
}
|
|
26
|
+
function parseSkipImports(skipImports, context) {
|
|
27
|
+
return skipImports.map((item) => {
|
|
28
|
+
const parts = item.split(':');
|
|
29
|
+
if (parts.length !== 2 || !parts[0] || !parts[1]) {
|
|
30
|
+
throw new TypeError(`skip import should be in the format ISSUER:DEPENDENCY`);
|
|
31
|
+
}
|
|
32
|
+
return [
|
|
33
|
+
normalizeCircularId(context, parts[0]),
|
|
34
|
+
normalizeCircularId(context, parts[1]),
|
|
35
|
+
];
|
|
36
|
+
});
|
|
37
|
+
}
|
|
16
38
|
function main() {
|
|
17
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
18
40
|
const y = yargs(hideBin(process.argv));
|
|
@@ -28,7 +50,11 @@ function main() {
|
|
|
28
50
|
})
|
|
29
51
|
.option('context', {
|
|
30
52
|
type: 'string',
|
|
31
|
-
desc: 'the context directory to shorten path, default is
|
|
53
|
+
desc: 'the context directory to shorten path, default is cwd',
|
|
54
|
+
})
|
|
55
|
+
.option('cwd', {
|
|
56
|
+
type: 'string',
|
|
57
|
+
desc: 'the working directory used to match files and resolve relative paths, default is current directory',
|
|
32
58
|
})
|
|
33
59
|
.option('extensions', {
|
|
34
60
|
alias: 'ext',
|
|
@@ -100,6 +126,16 @@ function main() {
|
|
|
100
126
|
type: 'string',
|
|
101
127
|
choices: ['tree', 'circular'],
|
|
102
128
|
desc: 'Skip parse import(...) statement.',
|
|
129
|
+
})
|
|
130
|
+
.option('skip-imports', {
|
|
131
|
+
type: 'string',
|
|
132
|
+
array: true,
|
|
133
|
+
desc: 'Skip import edges from circular checks. Values are regexp ISSUER:DEPENDENCY pairs.',
|
|
134
|
+
})
|
|
135
|
+
.option('group-by-package', {
|
|
136
|
+
type: 'boolean',
|
|
137
|
+
desc: 'print dependencies and circulars grouped by nearest package.json',
|
|
138
|
+
default: false,
|
|
103
139
|
})
|
|
104
140
|
.alias('h', 'help')
|
|
105
141
|
.wrap(Math.min(y.terminalWidth(), 100))
|
|
@@ -128,7 +164,9 @@ function main() {
|
|
|
128
164
|
let total = 0;
|
|
129
165
|
let ended = 0;
|
|
130
166
|
let current = '';
|
|
131
|
-
const
|
|
167
|
+
const cwd = path.resolve(argv.cwd || process.cwd());
|
|
168
|
+
const context = path.resolve(cwd, argv.context || '.');
|
|
169
|
+
const skippedImports = parseSkipImports((argv.skipImports || []).flatMap(splitSkipImportValue), context);
|
|
132
170
|
function onProgress(event, target) {
|
|
133
171
|
switch (event) {
|
|
134
172
|
case 'start':
|
|
@@ -145,6 +183,7 @@ function main() {
|
|
|
145
183
|
}
|
|
146
184
|
}
|
|
147
185
|
const options = {
|
|
186
|
+
cwd,
|
|
148
187
|
context,
|
|
149
188
|
extensions: argv.extensions.split(','),
|
|
150
189
|
js: argv.js.split(','),
|
|
@@ -161,21 +200,34 @@ function main() {
|
|
|
161
200
|
throw new Error(`No entry files were matched.`);
|
|
162
201
|
}
|
|
163
202
|
o.succeed(`[${ended}/${total}] Analyze done!`);
|
|
164
|
-
const entriesDeep = yield Promise.all(files.map((g) => G.glob(g)));
|
|
203
|
+
const entriesDeep = yield Promise.all(files.map((g) => G.glob(g, { cwd })));
|
|
165
204
|
const entries = yield Promise.all(Array()
|
|
166
205
|
.concat(...entriesDeep)
|
|
167
|
-
.map((name) =>
|
|
168
|
-
|
|
206
|
+
.map((name) => {
|
|
207
|
+
const fullName = resolveFromCwd(cwd, name);
|
|
208
|
+
return simpleResolver(cwd, fullName, options.extensions).then((id) => path.relative(context, id || fullName));
|
|
209
|
+
}));
|
|
210
|
+
const displayedTree = argv.groupByPackage
|
|
211
|
+
? groupDependencyTreeByPackage(tree, context)
|
|
212
|
+
: tree;
|
|
213
|
+
const displayedEntries = argv.groupByPackage
|
|
214
|
+
? groupEntriesByPackage(entries, context)
|
|
215
|
+
: entries;
|
|
216
|
+
const circulars = parseCircular(displayedTree, argv.skipDynamicImports === 'circular', skippedImports);
|
|
169
217
|
if (argv.output) {
|
|
170
|
-
yield fs.outputJSON(argv.output, { entries, tree, circulars }, { spaces: 2 });
|
|
218
|
+
yield fs.outputJSON(argv.output, { entries: displayedEntries, tree: displayedTree, circulars }, { spaces: 2 });
|
|
171
219
|
}
|
|
172
220
|
if (argv.tree) {
|
|
173
|
-
console.log(chalk.bold(
|
|
174
|
-
|
|
221
|
+
console.log(chalk.bold(argv.groupByPackage
|
|
222
|
+
? '• Package Dependencies Tree'
|
|
223
|
+
: '• Dependencies Tree'));
|
|
224
|
+
console.log(prettyTree(displayedTree, displayedEntries));
|
|
175
225
|
console.log('');
|
|
176
226
|
}
|
|
177
227
|
if (argv.circular) {
|
|
178
|
-
console.log(chalk.bold[circulars.length === 0 ? 'green' : 'red'](
|
|
228
|
+
console.log(chalk.bold[circulars.length === 0 ? 'green' : 'red'](argv.groupByPackage
|
|
229
|
+
? '• Package Circular Dependencies'
|
|
230
|
+
: '• Circular Dependencies'));
|
|
179
231
|
if (circulars.length === 0) {
|
|
180
232
|
console.log(chalk.bold.green(' ✅ Congratulations, no circular dependency was found in your project.'));
|
|
181
233
|
}
|
|
@@ -190,8 +242,8 @@ function main() {
|
|
|
190
242
|
console.log('');
|
|
191
243
|
}
|
|
192
244
|
if (argv.detectUnusedFilesFrom) {
|
|
193
|
-
const allFiles = yield G.glob(argv.detectUnusedFilesFrom);
|
|
194
|
-
const shortAllFiles = allFiles.map((v) => path.relative(context, v));
|
|
245
|
+
const allFiles = yield G.glob(argv.detectUnusedFilesFrom, { cwd });
|
|
246
|
+
const shortAllFiles = allFiles.map((v) => path.relative(context, resolveFromCwd(cwd, v)));
|
|
195
247
|
const unusedFiles = shortAllFiles.filter((v) => !(v in tree)).sort();
|
|
196
248
|
console.log(chalk.bold.cyan('• Unused files'));
|
|
197
249
|
if (unusedFiles.length === 0) {
|
package/lib/bin/dpdm.mjs.map
CHANGED
|
@@ -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,KAAK,CAAC,MAAM,MAAM,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,OAAO,EACP,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,cAAc,GACf,MAAM,UAAU,CAAC;
|
|
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,KAAK,CAAC,MAAM,MAAM,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,4BAA4B,EAC5B,qBAAqB,EACrB,OAAO,EACP,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,EAAU;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,MAAc;IACjD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CACvB,WAAqB,EACrB,OAAe;IAEf,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,SAAS,CACjB,uDAAuD,CACxD,CAAC;QACJ,CAAC;QACD,OAAO;YACL,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAe,IAAI;;QACjB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC;aACjB,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,uDAAuD;SAC9D,CAAC;aACD,MAAM,CAAC,KAAK,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,oGAAoG;SAC3G,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,MAAM,CAAC,0BAA0B,EAAE;YAClC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,qDAAqD;SAC5D,CAAC;aACD,MAAM,CAAC,sBAAsB,EAAE;YAC9B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;YAC7B,IAAI,EAAE,mCAAmC;SAC1C,CAAC;aACD,MAAM,CAAC,cAAc,EAAE;YACtB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,oFAAoF;SAC3F,CAAC;aACD,MAAM,CAAC,kBAAkB,EAAE;YAC1B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,kEAAkE;YACxE,OAAO,EAAE,KAAK;SACf,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;aACtC,UAAU,EAAE,CAAC;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAiB,CAAC;QAErC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;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,CAAC;YACtB,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,CAAC;oBAC9B,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;gBACtD,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,SAAS,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC;gBAC1D,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC;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,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,GAA0B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,gBAAgB,CACrC,CAAE,IAAI,CAAC,WAAoC,IAAI,EAAE,CAAC,CAAC,OAAO,CACxD,oBAAoB,CACrB,EACD,OAAO,CACR,CAAC;QAEF,SAAS,UAAU,CAAC,KAAsB,EAAE,MAAc;YACxD,QAAQ,KAAK,EAAE,CAAC;gBACd,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;YACV,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,eAAe,OAAO,KAAK,CAAC;gBACvD,CAAC,CAAC,MAAM,EAAE,CAAC;YACb,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAiB;YAC5B,GAAG;YACH,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,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,KAAK,MAAM;YACtD,UAAU;SACX,CAAC;QAEF,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;aAChC,IAAI,CAAC,CAAO,IAAI,EAAE,EAAE;YACnB,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YACD,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,KAAK,iBAAiB,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CACrC,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,EAAU;iBACZ,MAAM,CAAC,GAAG,WAAW,CAAC;iBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACZ,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC3C,OAAO,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAC3D,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,QAAQ,CAAC,CAC/C,CAAC;YACJ,CAAC,CAAC,CACL,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc;gBACvC,CAAC,CAAC,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC;gBAC7C,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc;gBAC1C,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC;gBACzC,CAAC,CAAC,OAAO,CAAC;YACZ,MAAM,SAAS,GAAG,aAAa,CAC7B,aAAa,EACb,IAAI,CAAC,kBAAkB,KAAK,UAAU,EACtC,cAAc,CACf,CAAC;YACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,EAAE,CAAC,UAAU,CACjB,IAAI,CAAC,MAAM,EACX,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAC7D,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,cAAc;oBACjB,CAAC,CAAC,6BAA6B;oBAC/B,CAAC,CAAC,qBAAqB,CAC1B,CACF,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAClD,IAAI,CAAC,cAAc;oBACjB,CAAC,CAAC,iCAAiC;oBACnC,CAAC,CAAC,yBAAyB,CAC9B,CACF,CAAC;gBACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,KAAK,CACd,wEAAwE,CACzE,CACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,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;YAClB,CAAC;YACD,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnE,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAC/C,CAAC;gBACF,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC/C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,KAAK,CACd,yEAAyE;wBACvE,QAAQ,CAAC,MAAM;wBACf,UAAU;wBACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBACxB,GAAG,CACN,CACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;oBACjD,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5D,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;gBACtC,QAAQ,KAAK,EAAE,CAAC;oBACd,KAAK,UAAU;wBACb,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACrB,CAAC;gBACL,CAAC;YACH,CAAC;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"}
|
package/lib/parser.js
CHANGED
|
@@ -109,12 +109,11 @@ function parseDependencyTree(entries, options) {
|
|
|
109
109
|
if (!Array.isArray(entries)) {
|
|
110
110
|
entries = [entries];
|
|
111
111
|
}
|
|
112
|
-
const currentDirectory = process.cwd();
|
|
113
112
|
const output = {};
|
|
114
113
|
const fullOptions = (0, utils_1.normalizeOptions)(options);
|
|
115
114
|
let resolve = utils_1.simpleResolver;
|
|
116
|
-
if (
|
|
117
|
-
const compilerOptions = typescript_1.default.parseJsonConfigFileContent(typescript_1.default.readConfigFile(
|
|
115
|
+
if (fullOptions.tsconfig) {
|
|
116
|
+
const compilerOptions = typescript_1.default.parseJsonConfigFileContent(typescript_1.default.readConfigFile(fullOptions.tsconfig, typescript_1.default.sys.readFile).config, typescript_1.default.sys, path_1.default.dirname(fullOptions.tsconfig)).options;
|
|
118
117
|
const host = typescript_1.default.createCompilerHost(compilerOptions);
|
|
119
118
|
resolve = (context, request, extensions) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
120
119
|
const module = typescript_1.default.resolveModuleName(request, path_1.default.join(context, 'index.ts'), compilerOptions, host).resolvedModule;
|
|
@@ -130,7 +129,7 @@ function parseDependencyTree(entries, options) {
|
|
|
130
129
|
}
|
|
131
130
|
});
|
|
132
131
|
}
|
|
133
|
-
yield Promise.all(entries.map((entry) => G.glob(entry).then((matches) => Promise.all(matches.map((filename) => parseTreeRecursive(
|
|
132
|
+
yield Promise.all(entries.map((entry) => G.glob(entry, { cwd: fullOptions.cwd }).then((matches) => Promise.all(matches.map((filename) => parseTreeRecursive(fullOptions.cwd, path_1.default.resolve(fullOptions.cwd, filename), fullOptions, output, resolve))))));
|
|
134
133
|
if (fullOptions.context) {
|
|
135
134
|
return (0, utils_1.shortenTree)(fullOptions.context, output);
|
|
136
135
|
}
|
package/lib/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA8HH,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/lib/parser.mjs
CHANGED
|
@@ -106,12 +106,11 @@ export function parseDependencyTree(entries, options) {
|
|
|
106
106
|
if (!Array.isArray(entries)) {
|
|
107
107
|
entries = [entries];
|
|
108
108
|
}
|
|
109
|
-
const currentDirectory = process.cwd();
|
|
110
109
|
const output = {};
|
|
111
110
|
const fullOptions = normalizeOptions(options);
|
|
112
111
|
let resolve = simpleResolver;
|
|
113
|
-
if (
|
|
114
|
-
const compilerOptions = ts.parseJsonConfigFileContent(ts.readConfigFile(
|
|
112
|
+
if (fullOptions.tsconfig) {
|
|
113
|
+
const compilerOptions = ts.parseJsonConfigFileContent(ts.readConfigFile(fullOptions.tsconfig, ts.sys.readFile).config, ts.sys, path.dirname(fullOptions.tsconfig)).options;
|
|
115
114
|
const host = ts.createCompilerHost(compilerOptions);
|
|
116
115
|
resolve = (context, request, extensions) => __awaiter(this, void 0, void 0, function* () {
|
|
117
116
|
const module = ts.resolveModuleName(request, path.join(context, 'index.ts'), compilerOptions, host).resolvedModule;
|
|
@@ -127,7 +126,7 @@ export function parseDependencyTree(entries, options) {
|
|
|
127
126
|
}
|
|
128
127
|
});
|
|
129
128
|
}
|
|
130
|
-
yield Promise.all(entries.map((entry) => G.glob(entry).then((matches) => Promise.all(matches.map((filename) => parseTreeRecursive(
|
|
129
|
+
yield Promise.all(entries.map((entry) => G.glob(entry, { cwd: fullOptions.cwd }).then((matches) => Promise.all(matches.map((filename) => parseTreeRecursive(fullOptions.cwd, path.resolve(fullOptions.cwd, filename), fullOptions, output, resolve))))));
|
|
131
130
|
if (fullOptions.context) {
|
|
132
131
|
return shortenTree(fullOptions.context, output);
|
|
133
132
|
}
|
package/lib/parser.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|