ng-checkup 0.5.2 → 0.5.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/README.md +2 -0
- package/dist/checks/version.js +11 -7
- package/dist/checks/version.js.map +1 -1
- package/dist/graph.js +39 -3
- package/dist/graph.js.map +1 -1
- package/dist/scan.d.ts +18 -0
- package/dist/scan.js +121 -3
- package/dist/scan.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -401,6 +401,8 @@ node dist/cli.js path/to/some/angular/app
|
|
|
401
401
|
|
|
402
402
|
Each check is one file in `src/checks/` and a pure function of the analysis context, so a new check is a new file plus a fixture that shows it.
|
|
403
403
|
|
|
404
|
+
**The corpus.** `npm run corpus` runs ng-checkup on 13 public Angular repositories pinned to one commit each (`corpus/repos.json`: Angular 12 to 22, CLI and Nx workspaces, Ionic, a 180 000-line app) and compares the result with `corpus/snapshots/`. CI runs it on every push. A rule change that moves any number shows up as a diff; read it, and run `npm run corpus -- --update` only when every changed line is an improvement. The repositories are fetched shallow into `.corpus/` and their dependencies are never installed.
|
|
405
|
+
|
|
404
406
|
## Need help acting on the report?
|
|
405
407
|
|
|
406
408
|
I'm [Stefan Kuburovic](https://stefankuburovic.github.io/), and modernizing large Angular codebases is my job. If you'd rather have someone walk through the report with your team, or do the upgrade with you, have a look at the [Angular Health Check](https://stefankuburovic.github.io/#health-check).
|
package/dist/checks/version.js
CHANGED
|
@@ -76,19 +76,23 @@ export function versionCheck(context) {
|
|
|
76
76
|
detail: `${mismatched.map((entry) => `${entry.name} ${entry.major}`).join(', ')}. Angular packages are released in lockstep and only tested against the same major; a mixed set is usually a half-finished upgrade.`,
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
// Per project, and only when the project has no esbuild build at all: a
|
|
80
|
+
// workspace may keep an extra webpack target on purpose (SCION keeps
|
|
81
|
+
// `build-basehref-webpack` to test that setup), which is not an unfinished migration.
|
|
82
|
+
const esbuildProjects = new Set(workspace.targets.filter((target) => /:(application|browser-esbuild)$/.test(target.builder)).map((target) => target.project));
|
|
83
|
+
const webpackProjects = [...new Set(workspace.targets.filter((target) => WEBPACK_BUILDERS.has(target.builder) && !esbuildProjects.has(target.project)).map((target) => target.project))];
|
|
84
|
+
if (webpackProjects.length > 0) {
|
|
81
85
|
findings.push({
|
|
82
86
|
severity: 'medium',
|
|
83
|
-
message: `${plural(
|
|
84
|
-
detail: `The esbuild-based \`application\` builder has been the default since Angular 17 and builds several times faster. \`ng update @angular/cli --name use-application-builder\` migrates the configuration. Projects: ${
|
|
87
|
+
message: `${plural(webpackProjects.length, 'project')} still built with the webpack builder`,
|
|
88
|
+
detail: `The esbuild-based \`application\` builder has been the default since Angular 17 and builds several times faster. \`ng update @angular/cli --name use-application-builder\` migrates the configuration. Projects: ${webpackProjects.join(', ')}.`,
|
|
85
89
|
});
|
|
86
90
|
}
|
|
87
91
|
const endOfLife = END_OF_LIFE_PACKAGES.filter((entry) => entry.name in workspace.dependencies);
|
|
88
92
|
for (const entry of endOfLife) {
|
|
89
93
|
findings.push({ severity: entry.runtime ? 'high' : 'medium', message: `\`${entry.name}\` is end of life`, detail: entry.note });
|
|
90
94
|
}
|
|
91
|
-
const grade = gap >= 3 || endOfLife.some((entry) => entry.runtime) ? 'poor' : gap === 2 || mismatched.length > 0 ||
|
|
95
|
+
const grade = gap >= 3 || endOfLife.some((entry) => entry.runtime) ? 'poor' : gap === 2 || mismatched.length > 0 || webpackProjects.length > 0 || endOfLife.length > 0 ? 'fair' : 'good';
|
|
92
96
|
const usesApplicationBuilder = workspace.targets.some((target) => /:(application|browser-esbuild)$/.test(target.builder));
|
|
93
97
|
return {
|
|
94
98
|
id: 'version',
|
|
@@ -99,12 +103,12 @@ export function versionCheck(context) {
|
|
|
99
103
|
{ label: 'Installed', value: versionLabel, hint: workspace.angular.installed ? 'node_modules' : 'package.json range' },
|
|
100
104
|
{ label: 'Latest', value: latestAngular.major, hint: latestLabel },
|
|
101
105
|
{ label: 'Majors behind', value: gap },
|
|
102
|
-
{ label: 'Build system', value:
|
|
106
|
+
{ label: 'Build system', value: webpackProjects.length > 0 ? 'webpack' : usesApplicationBuilder ? 'esbuild' : 'unknown' },
|
|
103
107
|
],
|
|
104
108
|
findings,
|
|
105
109
|
measures: [
|
|
106
110
|
{ id: 'end-of-life-packages', label: 'End-of-life packages', value: endOfLife.length },
|
|
107
|
-
{ id: 'webpack-builders', label: 'Projects on the webpack builder', value:
|
|
111
|
+
{ id: 'webpack-builders', label: 'Projects on the webpack builder', value: webpackProjects.length },
|
|
108
112
|
{ id: 'mismatched-angular-packages', label: 'Angular packages on another major', value: mismatched.length },
|
|
109
113
|
],
|
|
110
114
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/checks/version.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/checks/version.ts"],"names":[],"mappings":"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"}
|
package/dist/graph.js
CHANGED
|
@@ -31,9 +31,10 @@ export function buildImportGraph(files, compilerOptions) {
|
|
|
31
31
|
const byAbsolute = new Map(sources.map((file) => [resolve(file.absolutePath), file]));
|
|
32
32
|
const options = { ...compilerOptions, moduleResolution: ts.ModuleResolutionKind.Bundler, module: ts.ModuleKind.ESNext, allowJs: false };
|
|
33
33
|
const cache = ts.createModuleResolutionCache(process.cwd(), (name) => name, options);
|
|
34
|
-
|
|
34
|
+
// Pass 1: where each eager import points, if it is an analysed file.
|
|
35
|
+
const resolvedImports = new Map();
|
|
35
36
|
for (const file of sources) {
|
|
36
|
-
const
|
|
37
|
+
const resolvedFacts = [];
|
|
37
38
|
for (const fact of file.imports) {
|
|
38
39
|
if (fact.typeOnly || fact.dynamic)
|
|
39
40
|
continue;
|
|
@@ -46,9 +47,44 @@ export function buildImportGraph(files, compilerOptions) {
|
|
|
46
47
|
continue;
|
|
47
48
|
const target = resolve(resolved.resolvedFileName);
|
|
48
49
|
if (byAbsolute.has(target))
|
|
50
|
+
resolvedFacts.push({ fact, target });
|
|
51
|
+
}
|
|
52
|
+
resolvedImports.set(resolve(file.absolutePath), resolvedFacts);
|
|
53
|
+
}
|
|
54
|
+
// Pass 2: the type-only names of each file, following re-exports, so an
|
|
55
|
+
// import of a type through an `index.ts` barrel is recognised too.
|
|
56
|
+
const typeNames = new Map();
|
|
57
|
+
const typeNamesOf = (path) => {
|
|
58
|
+
const known = typeNames.get(path);
|
|
59
|
+
if (known)
|
|
60
|
+
return known;
|
|
61
|
+
const names = new Set(byAbsolute.get(path)?.typeExports ?? []);
|
|
62
|
+
typeNames.set(path, names); // set before recursing, so a re-export cycle ends
|
|
63
|
+
for (const { fact, target } of resolvedImports.get(path) ?? []) {
|
|
64
|
+
if (!fact.reexport)
|
|
65
|
+
continue;
|
|
66
|
+
const targetTypes = typeNamesOf(target);
|
|
67
|
+
if (fact.bindings.length === 0)
|
|
68
|
+
for (const name of targetTypes)
|
|
69
|
+
names.add(name);
|
|
70
|
+
for (const binding of fact.bindings)
|
|
71
|
+
if (targetTypes.has(binding.imported))
|
|
72
|
+
names.add(binding.exported ?? binding.imported);
|
|
73
|
+
}
|
|
74
|
+
return names;
|
|
75
|
+
};
|
|
76
|
+
// Pass 3: the edges. An import whose every name is a type in the target is
|
|
77
|
+
// erased by TypeScript even without `import type`, so it is no edge: the
|
|
78
|
+
// case that made a 123-file "cycle" out of a library's model types.
|
|
79
|
+
const edges = new Map();
|
|
80
|
+
for (const [path, resolvedFacts] of resolvedImports) {
|
|
81
|
+
const targets = new Set();
|
|
82
|
+
for (const { fact, target } of resolvedFacts) {
|
|
83
|
+
const onlyTypes = fact.bindings.length > 0 && fact.bindings.every((binding) => binding.typeOnly || !binding.valueUsed || typeNamesOf(target).has(binding.imported));
|
|
84
|
+
if (!onlyTypes)
|
|
49
85
|
targets.add(target);
|
|
50
86
|
}
|
|
51
|
-
edges.set(
|
|
87
|
+
edges.set(path, [...targets]);
|
|
52
88
|
}
|
|
53
89
|
return { edges, byAbsolute };
|
|
54
90
|
}
|
package/dist/graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,MAAM,YAAY,CAAC;AAe5B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CAAC,KAAwB,EAAE,eAAmC;IACvF,OAAO,aAAa,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;AACjE,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAwB,EAAE,eAAmC;IAC5F,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,OAAO,GAAuB,EAAE,GAAG,eAAe,EAAE,gBAAgB,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5J,MAAM,KAAK,GAAG,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAErF,MAAM,
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
|
package/dist/scan.d.ts
CHANGED
|
@@ -4,7 +4,15 @@ export interface ImportBinding {
|
|
|
4
4
|
imported: string;
|
|
5
5
|
/** The name it is bound to in this file. */
|
|
6
6
|
local: string;
|
|
7
|
+
/** For a re-export, the name it is exported under (`B` in `export { A as B } from`). */
|
|
8
|
+
exported?: string;
|
|
7
9
|
typeOnly: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* False when the file only uses the binding as a type. TypeScript erases
|
|
12
|
+
* such an import even without `import type`, so it is no runtime
|
|
13
|
+
* dependency (see `valueReferences`). Always true for a re-export.
|
|
14
|
+
*/
|
|
15
|
+
valueUsed: boolean;
|
|
8
16
|
}
|
|
9
17
|
/** One `import`, `export … from` or dynamic `import()` in a source file. */
|
|
10
18
|
export interface ImportFact {
|
|
@@ -20,6 +28,8 @@ export interface ImportFact {
|
|
|
20
28
|
dynamic: boolean;
|
|
21
29
|
/** Empty for a side-effect import (`import 'zone.js'`) and for `export * from`. */
|
|
22
30
|
bindings: ImportBinding[];
|
|
31
|
+
/** True for `export … from`: the file passes the names on rather than using them. */
|
|
32
|
+
reexport?: boolean;
|
|
23
33
|
}
|
|
24
34
|
/** One `@Component` class. */
|
|
25
35
|
export interface ComponentFact {
|
|
@@ -145,6 +155,14 @@ export interface SourceFileFacts {
|
|
|
145
155
|
line: number;
|
|
146
156
|
kind: string;
|
|
147
157
|
}>;
|
|
158
|
+
/**
|
|
159
|
+
* Names this file exports only as types: `export type`, `export interface`,
|
|
160
|
+
* `export { type X }`, and `export { X }` of a local type. A name that is
|
|
161
|
+
* also a value (an interface merged with a const) is left out. The graph
|
|
162
|
+
* uses it to drop imports that name nothing but types, which TypeScript
|
|
163
|
+
* erases even without `import type`.
|
|
164
|
+
*/
|
|
165
|
+
typeExports: string[];
|
|
148
166
|
/** `templateUrl`/`template` is resolved by the template scan; inline templates are collected here. */
|
|
149
167
|
inlineTemplates: TemplateFact[];
|
|
150
168
|
}
|
package/dist/scan.js
CHANGED
|
@@ -32,6 +32,7 @@ export function scanSourceFile(root, absolutePath) {
|
|
|
32
32
|
nonNullLines: [],
|
|
33
33
|
definiteAssignments: 0,
|
|
34
34
|
typeSuppressions: (text.match(/@ts-(ignore|expect-error|nocheck)\b/g) ?? []).length,
|
|
35
|
+
typeExports: typeExportsOf(source),
|
|
35
36
|
toPromiseLines: [],
|
|
36
37
|
bypassSecurityLines: [],
|
|
37
38
|
unsafeDomLines: [],
|
|
@@ -51,6 +52,14 @@ export function scanSourceFile(root, absolutePath) {
|
|
|
51
52
|
for (const binding of fact.bindings)
|
|
52
53
|
locals.set(binding.local, { module: fact.specifier, imported: binding.imported });
|
|
53
54
|
}
|
|
55
|
+
// Which imported names the file uses as values; the rest TypeScript erases.
|
|
56
|
+
const valueNames = valueReferences(source, new Set(locals.keys()));
|
|
57
|
+
for (const fact of facts.imports) {
|
|
58
|
+
if (fact.reexport)
|
|
59
|
+
continue;
|
|
60
|
+
for (const binding of fact.bindings)
|
|
61
|
+
binding.valueUsed = valueNames.has(binding.local);
|
|
62
|
+
}
|
|
54
63
|
const lineOf = (node) => source.getLineAndCharacterOfPosition(node.getStart(source)).line + 1;
|
|
55
64
|
/** `module#name` for an identifier bound by an import, undefined for anything local or global. */
|
|
56
65
|
const keyOf = (expression) => {
|
|
@@ -224,6 +233,112 @@ export function scanSourceFile(root, absolutePath) {
|
|
|
224
233
|
visit(source);
|
|
225
234
|
return facts;
|
|
226
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* The names out of `names` that the file references as values: anywhere
|
|
238
|
+
* outside a type annotation, an `implements` clause, an interface or a type
|
|
239
|
+
* alias. That is the rule TypeScript applies when it decides to drop an
|
|
240
|
+
* import: `import { Store } from './store'` used only in `store: Store` is
|
|
241
|
+
* erased, and so is the dependency.
|
|
242
|
+
*
|
|
243
|
+
* One exception makes Angular code a runtime dependency where plain
|
|
244
|
+
* TypeScript would not be: the parameter types of a decorated class's
|
|
245
|
+
* constructor. The Angular compiler turns them into DI tokens
|
|
246
|
+
* (`ɵɵinject(Store)`), so they count as values, which is what keeps a real
|
|
247
|
+
* service cycle visible.
|
|
248
|
+
*/
|
|
249
|
+
function valueReferences(source, names) {
|
|
250
|
+
const used = new Set();
|
|
251
|
+
if (names.size === 0)
|
|
252
|
+
return used;
|
|
253
|
+
const visit = (node, inType) => {
|
|
254
|
+
if (ts.isImportDeclaration(node) || ts.isInterfaceDeclaration(node) || ts.isTypeAliasDeclaration(node))
|
|
255
|
+
return;
|
|
256
|
+
if (ts.isHeritageClause(node)) {
|
|
257
|
+
const implementsClause = node.token === ts.SyntaxKind.ImplementsKeyword;
|
|
258
|
+
for (const type of node.types) {
|
|
259
|
+
visit(type.expression, inType || implementsClause);
|
|
260
|
+
for (const argument of type.typeArguments ?? [])
|
|
261
|
+
visit(argument, true);
|
|
262
|
+
}
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
if (ts.isConstructorDeclaration(node) && ts.isClassLike(node.parent) && (ts.getDecorators(node.parent) ?? []).length > 0) {
|
|
266
|
+
for (const parameter of node.parameters) {
|
|
267
|
+
for (const decorator of ts.getDecorators(parameter) ?? [])
|
|
268
|
+
visit(decorator, false);
|
|
269
|
+
// The parameter's own type is the DI token; its type arguments are not.
|
|
270
|
+
if (parameter.type && ts.isTypeReferenceNode(parameter.type))
|
|
271
|
+
visit(parameter.type.typeName, false);
|
|
272
|
+
else if (parameter.type)
|
|
273
|
+
visit(parameter.type, true);
|
|
274
|
+
if (parameter.initializer)
|
|
275
|
+
visit(parameter.initializer, false);
|
|
276
|
+
}
|
|
277
|
+
if (node.body)
|
|
278
|
+
visit(node.body, false);
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
if (ts.isIdentifier(node)) {
|
|
282
|
+
if (!inType && names.has(node.text) && isReference(node))
|
|
283
|
+
used.add(node.text);
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
const nowInType = inType || ts.isTypeNode(node);
|
|
287
|
+
ts.forEachChild(node, (child) => visit(child, nowInType));
|
|
288
|
+
};
|
|
289
|
+
visit(source, false);
|
|
290
|
+
return used;
|
|
291
|
+
}
|
|
292
|
+
/** False for an identifier that only names something: a property after a dot, an object key, a declared name. */
|
|
293
|
+
function isReference(node) {
|
|
294
|
+
const parent = node.parent;
|
|
295
|
+
if (ts.isPropertyAccessExpression(parent) && parent.name === node)
|
|
296
|
+
return false;
|
|
297
|
+
if (ts.isQualifiedName(parent) && parent.right === node)
|
|
298
|
+
return false;
|
|
299
|
+
if ((ts.isPropertyAssignment(parent) || ts.isPropertyDeclaration(parent) || ts.isMethodDeclaration(parent) || ts.isGetAccessor(parent) || ts.isSetAccessor(parent) || ts.isPropertySignature(parent)) && parent.name === node)
|
|
300
|
+
return false;
|
|
301
|
+
if ((ts.isVariableDeclaration(parent) || ts.isParameter(parent) || ts.isFunctionDeclaration(parent) || ts.isClassDeclaration(parent) || ts.isEnumMember(parent) || ts.isBindingElement(parent)) && parent.name === node)
|
|
302
|
+
return false;
|
|
303
|
+
if (ts.isExportSpecifier(parent))
|
|
304
|
+
return !parent.isTypeOnly && !parent.parent.parent.isTypeOnly;
|
|
305
|
+
return true;
|
|
306
|
+
}
|
|
307
|
+
/** See `SourceFileFacts.typeExports`. Top-level statements only, which is where exports live. */
|
|
308
|
+
function typeExportsOf(source) {
|
|
309
|
+
const exported = (node) => ts.canHaveModifiers(node) && (ts.getModifiers(node) ?? []).some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword);
|
|
310
|
+
const types = new Set();
|
|
311
|
+
const values = new Set();
|
|
312
|
+
const exportedTypes = new Set();
|
|
313
|
+
for (const statement of source.statements) {
|
|
314
|
+
if (ts.isTypeAliasDeclaration(statement) || ts.isInterfaceDeclaration(statement)) {
|
|
315
|
+
types.add(statement.name.text);
|
|
316
|
+
if (exported(statement))
|
|
317
|
+
exportedTypes.add(statement.name.text);
|
|
318
|
+
}
|
|
319
|
+
else if ((ts.isClassDeclaration(statement) || ts.isFunctionDeclaration(statement) || ts.isEnumDeclaration(statement)) && statement.name) {
|
|
320
|
+
values.add(statement.name.text);
|
|
321
|
+
}
|
|
322
|
+
else if (ts.isVariableStatement(statement)) {
|
|
323
|
+
for (const declaration of statement.declarationList.declarations)
|
|
324
|
+
if (ts.isIdentifier(declaration.name))
|
|
325
|
+
values.add(declaration.name.text);
|
|
326
|
+
}
|
|
327
|
+
else if (ts.isModuleDeclaration(statement) && ts.isIdentifier(statement.name)) {
|
|
328
|
+
values.add(statement.name.text);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
for (const statement of source.statements) {
|
|
332
|
+
if (!ts.isExportDeclaration(statement) || statement.moduleSpecifier || !statement.exportClause || !ts.isNamedExports(statement.exportClause))
|
|
333
|
+
continue;
|
|
334
|
+
for (const element of statement.exportClause.elements) {
|
|
335
|
+
const local = (element.propertyName ?? element.name).text;
|
|
336
|
+
if (statement.isTypeOnly || element.isTypeOnly || (types.has(local) && !values.has(local)))
|
|
337
|
+
exportedTypes.add(element.name.text);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
return [...exportedTypes].filter((name) => !values.has(name));
|
|
341
|
+
}
|
|
227
342
|
/**
|
|
228
343
|
* True for HTML the code wrote itself: a string literal, a template literal
|
|
229
344
|
* without substitutions, or literals joined with `+`. `el.innerHTML = ''` (the
|
|
@@ -252,13 +367,13 @@ function importFactOf(statement, source) {
|
|
|
252
367
|
const bindings = [];
|
|
253
368
|
const clauseTypeOnly = clause?.isTypeOnly ?? false;
|
|
254
369
|
if (clause?.name)
|
|
255
|
-
bindings.push({ imported: 'default', local: clause.name.text, typeOnly: clauseTypeOnly });
|
|
370
|
+
bindings.push({ imported: 'default', local: clause.name.text, typeOnly: clauseTypeOnly, valueUsed: true });
|
|
256
371
|
const named = clause?.namedBindings;
|
|
257
372
|
if (named && ts.isNamespaceImport(named))
|
|
258
|
-
bindings.push({ imported: '*', local: named.name.text, typeOnly: clauseTypeOnly });
|
|
373
|
+
bindings.push({ imported: '*', local: named.name.text, typeOnly: clauseTypeOnly, valueUsed: true });
|
|
259
374
|
if (named && ts.isNamedImports(named)) {
|
|
260
375
|
for (const element of named.elements) {
|
|
261
|
-
bindings.push({ imported: (element.propertyName ?? element.name).text, local: element.name.text, typeOnly: clauseTypeOnly || element.isTypeOnly });
|
|
376
|
+
bindings.push({ imported: (element.propertyName ?? element.name).text, local: element.name.text, typeOnly: clauseTypeOnly || element.isTypeOnly, valueUsed: true });
|
|
262
377
|
}
|
|
263
378
|
}
|
|
264
379
|
return {
|
|
@@ -276,7 +391,9 @@ function importFactOf(statement, source) {
|
|
|
276
391
|
imported: (element.propertyName ?? element.name).text,
|
|
277
392
|
// A re-export binds nothing locally; the empty name keeps it out of the local lookup.
|
|
278
393
|
local: '',
|
|
394
|
+
exported: element.name.text,
|
|
279
395
|
typeOnly: statement.isTypeOnly || element.isTypeOnly,
|
|
396
|
+
valueUsed: true,
|
|
280
397
|
}))
|
|
281
398
|
: [];
|
|
282
399
|
return {
|
|
@@ -285,6 +402,7 @@ function importFactOf(statement, source) {
|
|
|
285
402
|
typeOnly: statement.isTypeOnly || (bindings.length > 0 && bindings.every((binding) => binding.typeOnly)),
|
|
286
403
|
dynamic: false,
|
|
287
404
|
bindings,
|
|
405
|
+
reexport: true,
|
|
288
406
|
};
|
|
289
407
|
}
|
|
290
408
|
return undefined;
|
package/dist/scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng-checkup",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "A one-minute modernization report for any Angular codebase: version gap, deprecated APIs, zoneless readiness, signals adoption, test runner, type safety and circular dependencies.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -54,7 +54,8 @@
|
|
|
54
54
|
"pretest": "npm run build",
|
|
55
55
|
"test": "vitest run",
|
|
56
56
|
"prepublishOnly": "npm run typecheck && npm test",
|
|
57
|
-
"checkup": "node dist/cli.js"
|
|
57
|
+
"checkup": "node dist/cli.js",
|
|
58
|
+
"corpus": "node scripts/corpus.mjs"
|
|
58
59
|
},
|
|
59
60
|
"dependencies": {
|
|
60
61
|
"typescript": "~6.0.3"
|