tdepend 0.2.0 → 0.3.1
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/LICENSE +21 -0
- package/README.md +212 -116
- package/dist/api/analyze.d.ts +8 -68
- package/dist/api/analyze.js +33 -108
- package/dist/api/analyze.js.map +1 -1
- package/dist/api/explain.d.ts +22 -0
- package/dist/api/explain.js +38 -0
- package/dist/api/explain.js.map +1 -0
- package/dist/api/export.d.ts +4 -47
- package/dist/api/export.js +6 -45
- package/dist/api/export.js.map +1 -1
- package/dist/api/serialization.d.ts +6 -26
- package/dist/api/serialization.js +68 -58
- package/dist/api/serialization.js.map +1 -1
- package/dist/cli/index.js +11 -129
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/run.d.ts +12 -0
- package/dist/cli/run.js +112 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/config/loadConfig.d.ts +10 -10
- package/dist/config/loadConfig.js +73 -36
- package/dist/config/loadConfig.js.map +1 -1
- package/dist/config/schema.d.ts +59 -29
- package/dist/config/schema.js +45 -51
- package/dist/config/schema.js.map +1 -1
- package/dist/errors.d.ts +9 -0
- package/dist/errors.js +21 -0
- package/dist/errors.js.map +1 -0
- package/dist/files/collectFiles.d.ts +21 -0
- package/dist/files/collectFiles.js +189 -0
- package/dist/files/collectFiles.js.map +1 -0
- package/dist/fs.d.ts +16 -0
- package/dist/fs.js +50 -0
- package/dist/fs.js.map +1 -0
- package/dist/graph/buildFileGraph.d.ts +33 -0
- package/dist/graph/buildFileGraph.js +163 -0
- package/dist/graph/buildFileGraph.js.map +1 -0
- package/dist/graph/fileGraph.d.ts +20 -0
- package/dist/graph/fileGraph.js +75 -0
- package/dist/graph/fileGraph.js.map +1 -0
- package/dist/index.d.ts +10 -21
- package/dist/index.js +6 -29
- package/dist/index.js.map +1 -1
- package/dist/output/analyzeText.d.ts +7 -0
- package/dist/output/analyzeText.js +91 -0
- package/dist/output/analyzeText.js.map +1 -0
- package/dist/parser/extractSites.d.ts +3 -0
- package/dist/parser/extractSites.js +704 -0
- package/dist/parser/extractSites.js.map +1 -0
- package/dist/parser/loadsTarget.d.ts +10 -0
- package/dist/parser/loadsTarget.js +304 -0
- package/dist/parser/loadsTarget.js.map +1 -0
- package/dist/parser/types.d.ts +30 -0
- package/dist/{types/graph.js → parser/types.js} +1 -1
- package/dist/parser/types.js.map +1 -0
- package/dist/project/discoverProject.d.ts +2 -0
- package/dist/project/discoverProject.js +477 -0
- package/dist/project/discoverProject.js.map +1 -0
- package/dist/project/gitignore.d.ts +13 -0
- package/dist/project/gitignore.js +138 -0
- package/dist/project/gitignore.js.map +1 -0
- package/dist/project/types.d.ts +44 -0
- package/dist/{types/parser.js → project/types.js} +1 -1
- package/dist/project/types.js.map +1 -0
- package/dist/resolver/createResolver.d.ts +4 -0
- package/dist/resolver/createResolver.js +276 -0
- package/dist/resolver/createResolver.js.map +1 -0
- package/dist/resolver/types.d.ts +28 -0
- package/dist/resolver/types.js +3 -0
- package/dist/resolver/types.js.map +1 -0
- package/dist/resolver/workspaceHost.d.ts +12 -0
- package/dist/resolver/workspaceHost.js +253 -0
- package/dist/resolver/workspaceHost.js.map +1 -0
- package/dist/types/api.d.ts +71 -64
- package/package.json +24 -25
- package/dist/analysis/reporter.d.ts +0 -22
- package/dist/analysis/reporter.js +0 -116
- package/dist/analysis/reporter.js.map +0 -1
- package/dist/graph/cycleDetector.d.ts +0 -2
- package/dist/graph/cycleDetector.js +0 -56
- package/dist/graph/cycleDetector.js.map +0 -1
- package/dist/graph/dependencyGraph.d.ts +0 -10
- package/dist/graph/dependencyGraph.js +0 -41
- package/dist/graph/dependencyGraph.js.map +0 -1
- package/dist/metrics/abstractness.d.ts +0 -2
- package/dist/metrics/abstractness.js +0 -10
- package/dist/metrics/abstractness.js.map +0 -1
- package/dist/metrics/distance.d.ts +0 -1
- package/dist/metrics/distance.js +0 -7
- package/dist/metrics/distance.js.map +0 -1
- package/dist/metrics/index.d.ts +0 -4
- package/dist/metrics/index.js +0 -30
- package/dist/metrics/index.js.map +0 -1
- package/dist/metrics/instability.d.ts +0 -1
- package/dist/metrics/instability.js +0 -8
- package/dist/metrics/instability.js.map +0 -1
- package/dist/parser/fileScanner.d.ts +0 -8
- package/dist/parser/fileScanner.js +0 -22
- package/dist/parser/fileScanner.js.map +0 -1
- package/dist/parser/tsParser.d.ts +0 -18
- package/dist/parser/tsParser.js +0 -158
- package/dist/parser/tsParser.js.map +0 -1
- package/dist/types/graph.d.ts +0 -14
- package/dist/types/graph.js.map +0 -1
- package/dist/types/parser.d.ts +0 -26
- package/dist/types/parser.js.map +0 -1
- package/dist/utils/deepMerge.d.ts +0 -1
- package/dist/utils/deepMerge.js +0 -23
- package/dist/utils/deepMerge.js.map +0 -1
- package/dist/utils/log.d.ts +0 -2
- package/dist/utils/log.js +0 -9
- package/dist/utils/log.js.map +0 -1
- package/dist/utils/pathUtils.d.ts +0 -12
- package/dist/utils/pathUtils.js +0 -27
- package/dist/utils/pathUtils.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractSites.js","sourceRoot":"","sources":["../../src/parser/extractSites.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as ts from 'typescript';
|
|
2
|
+
import type { ImportSite, LoadReason, ParsedFile } from './types';
|
|
3
|
+
export type Compiler = 'tsc' | 'esbuild' | 'swc';
|
|
4
|
+
export type { LoadReason };
|
|
5
|
+
export interface LoadVerdict {
|
|
6
|
+
loadsTarget: boolean;
|
|
7
|
+
loadsTargetBy: LoadReason;
|
|
8
|
+
reason: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function classifyLoads(parsed: ParsedFile, site: ImportSite, options: ts.CompilerOptions, typeOnly: 'usage' | 'syntax', compilers: Compiler[]): LoadVerdict;
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.classifyLoads = classifyLoads;
|
|
37
|
+
const ts = __importStar(require("typescript"));
|
|
38
|
+
const TS_FAMILY = /\.(ts|tsx|mts|cts)$/i;
|
|
39
|
+
// A site loads its target unless every declared compiler erases it. The rules
|
|
40
|
+
// below read the file's own compiler options plus the declared compilers, so a
|
|
41
|
+
// repo can narrow the contract with `compilers`.
|
|
42
|
+
function classifyLoads(parsed, site, options, typeOnly, compilers) {
|
|
43
|
+
if (site.form === 'type-context') {
|
|
44
|
+
return erased('syntax', 'a type-context import is erased by every compiler');
|
|
45
|
+
}
|
|
46
|
+
if (site.kind === 'type') {
|
|
47
|
+
if (isWholeTypeDeclaration(site)) {
|
|
48
|
+
return erased('syntax', 'a whole-declaration type-only import or re-export is erased by every compiler');
|
|
49
|
+
}
|
|
50
|
+
if (keepsVerbatim(options)) {
|
|
51
|
+
return retained('an inline type-only import under verbatimModuleSyntax still evaluates the module');
|
|
52
|
+
}
|
|
53
|
+
return erased('syntax', 'inline type-only specifiers are erased by every compiler');
|
|
54
|
+
}
|
|
55
|
+
if (site.kind === 're-export') {
|
|
56
|
+
return classifyReExport(parsed, site, options, compilers);
|
|
57
|
+
}
|
|
58
|
+
if (site.kind === 'require' || site.kind === 'side-effect' || site.kind === 'dynamic') {
|
|
59
|
+
return retained(`a ${site.kind} import is evaluated and every compiler keeps it`);
|
|
60
|
+
}
|
|
61
|
+
return classifyStatic(parsed, site, options, typeOnly, compilers);
|
|
62
|
+
}
|
|
63
|
+
function classifyReExport(parsed, site, options, compilers) {
|
|
64
|
+
const declaration = exportDeclarationOf(site);
|
|
65
|
+
const clause = declaration?.exportClause;
|
|
66
|
+
if (clause === undefined || ts.isNamespaceExport(clause)) {
|
|
67
|
+
return retained('a namespace re-export is evaluated by every compiler');
|
|
68
|
+
}
|
|
69
|
+
if (clause.elements.length === 0) {
|
|
70
|
+
if (TS_FAMILY.test(parsed.file) && !keepsVerbatim(options)) {
|
|
71
|
+
return erased('syntax', 'an empty re-export is erased in a TypeScript file without verbatimModuleSyntax');
|
|
72
|
+
}
|
|
73
|
+
return retained('an empty re-export is kept by esbuild and swc, and by native ESM');
|
|
74
|
+
}
|
|
75
|
+
return retained('an unmarked named re-export is kept until every name is known to be a type');
|
|
76
|
+
}
|
|
77
|
+
function classifyStatic(parsed, site, options, typeOnly, compilers) {
|
|
78
|
+
if (site.bindings.length === 0) {
|
|
79
|
+
if (keepsVerbatim(options) || compilers.includes('swc')) {
|
|
80
|
+
return retained('an empty import is kept by swc as a side-effect import');
|
|
81
|
+
}
|
|
82
|
+
return erased('syntax', 'an empty import is erased by every declared compiler');
|
|
83
|
+
}
|
|
84
|
+
if (!TS_FAMILY.test(parsed.file)) {
|
|
85
|
+
return retained('a static import in a JavaScript file is kept exactly as written');
|
|
86
|
+
}
|
|
87
|
+
if (keepsVerbatim(options) || options.preserveValueImports === true || preservesUnused(options)) {
|
|
88
|
+
return retained('the file keeps an unused import under its compiler options');
|
|
89
|
+
}
|
|
90
|
+
if (typeOnly === 'syntax') {
|
|
91
|
+
return retained('typeOnly is syntax, so every static import is kept');
|
|
92
|
+
}
|
|
93
|
+
const facts = fileFacts(parsed.sourceFile, options);
|
|
94
|
+
if (site.bindings.some((binding) => facts.valueNames.has(binding.local))) {
|
|
95
|
+
return retained('at least one binding is used as a value');
|
|
96
|
+
}
|
|
97
|
+
return erased('usage', 'every binding is used only in a type position, or not at all');
|
|
98
|
+
}
|
|
99
|
+
function erased(loadsTargetBy, reason) {
|
|
100
|
+
return { loadsTarget: false, loadsTargetBy, reason };
|
|
101
|
+
}
|
|
102
|
+
function retained(reason) {
|
|
103
|
+
return { loadsTarget: true, loadsTargetBy: 'retained', reason };
|
|
104
|
+
}
|
|
105
|
+
function keepsVerbatim(options) {
|
|
106
|
+
return options.verbatimModuleSyntax === true;
|
|
107
|
+
}
|
|
108
|
+
function preservesUnused(options) {
|
|
109
|
+
return (options.importsNotUsedAsValues === ts.ImportsNotUsedAsValues.Preserve ||
|
|
110
|
+
options.importsNotUsedAsValues === ts.ImportsNotUsedAsValues.Error);
|
|
111
|
+
}
|
|
112
|
+
function isWholeTypeDeclaration(site) {
|
|
113
|
+
const parent = site.node.parent;
|
|
114
|
+
if (ts.isImportDeclaration(parent)) {
|
|
115
|
+
return parent.importClause?.isTypeOnly === true;
|
|
116
|
+
}
|
|
117
|
+
if (ts.isExportDeclaration(parent)) {
|
|
118
|
+
return parent.isTypeOnly;
|
|
119
|
+
}
|
|
120
|
+
if (ts.isExternalModuleReference(parent)) {
|
|
121
|
+
const owner = parent.parent;
|
|
122
|
+
return ts.isImportEqualsDeclaration(owner) && owner.isTypeOnly;
|
|
123
|
+
}
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
function exportDeclarationOf(site) {
|
|
127
|
+
const parent = site.node.parent;
|
|
128
|
+
return ts.isExportDeclaration(parent) ? parent : undefined;
|
|
129
|
+
}
|
|
130
|
+
const FILE_FACTS = new WeakMap();
|
|
131
|
+
function fileFacts(sourceFile, options) {
|
|
132
|
+
const cached = FILE_FACTS.get(sourceFile);
|
|
133
|
+
if (cached !== undefined)
|
|
134
|
+
return cached;
|
|
135
|
+
const facts = collectFileFacts(sourceFile, options);
|
|
136
|
+
FILE_FACTS.set(sourceFile, facts);
|
|
137
|
+
return facts;
|
|
138
|
+
}
|
|
139
|
+
const JSX_PRAGMA = /@jsx(?:Frag)?\s+([\w$]+)/gi;
|
|
140
|
+
// One name-matching pass over the file. A name counts as a value use when it
|
|
141
|
+
// appears outside a type position and outside the import statements, so the
|
|
142
|
+
// scan never treats the import that declares it as a use of itself. Scopes are
|
|
143
|
+
// not analysed: a shadowing local or parameter counts too, which keeps the
|
|
144
|
+
// result conservative.
|
|
145
|
+
function collectFileFacts(sourceFile, options) {
|
|
146
|
+
const valueNames = new Set();
|
|
147
|
+
const metadataOn = options.experimentalDecorators === true && options.emitDecoratorMetadata === true;
|
|
148
|
+
let hasJsx = false;
|
|
149
|
+
const record = (name) => {
|
|
150
|
+
valueNames.add(name);
|
|
151
|
+
};
|
|
152
|
+
const visit = (node, inType) => {
|
|
153
|
+
if (ts.isImportDeclaration(node) || ts.isImportEqualsDeclaration(node))
|
|
154
|
+
return;
|
|
155
|
+
if (ts.isExportDeclaration(node)) {
|
|
156
|
+
if (node.moduleSpecifier !== undefined)
|
|
157
|
+
return;
|
|
158
|
+
const clause = node.exportClause;
|
|
159
|
+
if (clause !== undefined && ts.isNamedExports(clause) && !node.isTypeOnly) {
|
|
160
|
+
for (const element of clause.elements) {
|
|
161
|
+
if (!element.isTypeOnly)
|
|
162
|
+
record((element.propertyName ?? element.name).text);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (ts.isExportAssignment(node)) {
|
|
168
|
+
visit(node.expression, false);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (ts.isHeritageClause(node)) {
|
|
172
|
+
visitHeritageClause(node, visit);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
if (ts.isExpressionWithTypeArguments(node)) {
|
|
176
|
+
if (!inType)
|
|
177
|
+
visit(node.expression, false);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if (inType || ts.isTypeNode(node)) {
|
|
181
|
+
if (ts.isComputedPropertyName(node))
|
|
182
|
+
visit(node.expression, false);
|
|
183
|
+
else
|
|
184
|
+
node.forEachChild((child) => visit(child, true));
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
if (ts.isIdentifier(node) && isReference(node))
|
|
188
|
+
record(node.text);
|
|
189
|
+
if (ts.isJsxElement(node) || ts.isJsxSelfClosingElement(node) || ts.isJsxFragment(node)) {
|
|
190
|
+
hasJsx = true;
|
|
191
|
+
}
|
|
192
|
+
if (metadataOn)
|
|
193
|
+
recordDeclaredTypes(node, record);
|
|
194
|
+
node.forEachChild((child) => visit(child, ts.isTypeNode(child) && !ts.isExpressionWithTypeArguments(child)));
|
|
195
|
+
};
|
|
196
|
+
visit(sourceFile, false);
|
|
197
|
+
if (hasJsx)
|
|
198
|
+
jsxFactoryNames(sourceFile, options).forEach(record);
|
|
199
|
+
return { valueNames };
|
|
200
|
+
}
|
|
201
|
+
// swc keeps the factory import under every `jsx` setting, even the automatic
|
|
202
|
+
// runtime that never calls it. A comment that only looks like a pragma can match
|
|
203
|
+
// here, which keeps an import and never erases one.
|
|
204
|
+
function jsxFactoryNames(sourceFile, options) {
|
|
205
|
+
const names = [options.jsxFactory ?? options.reactNamespace ?? 'React'];
|
|
206
|
+
if (options.jsxFragmentFactory !== undefined)
|
|
207
|
+
names.push(options.jsxFragmentFactory);
|
|
208
|
+
for (const match of sourceFile.text.matchAll(JSX_PRAGMA))
|
|
209
|
+
names.push(match[1]);
|
|
210
|
+
return names.map((name) => name.split('.')[0]);
|
|
211
|
+
}
|
|
212
|
+
function visitHeritageClause(clause, visit) {
|
|
213
|
+
const owner = clause.parent;
|
|
214
|
+
const classExtends = (ts.isClassDeclaration(owner) || ts.isClassExpression(owner)) &&
|
|
215
|
+
clause.token === ts.SyntaxKind.ExtendsKeyword;
|
|
216
|
+
if (!classExtends)
|
|
217
|
+
return;
|
|
218
|
+
for (const type of clause.types) {
|
|
219
|
+
visit(type.expression, false);
|
|
220
|
+
for (const argument of type.typeArguments ?? [])
|
|
221
|
+
visit(argument, true);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// tsc and swc serialise only the leftmost name of a type reference
|
|
225
|
+
// (`Promise<Dto>` becomes `Promise`), so only that name is a value use.
|
|
226
|
+
function recordDeclaredTypes(node, record) {
|
|
227
|
+
if (ts.isMethodDeclaration(node) ||
|
|
228
|
+
ts.isGetAccessorDeclaration(node) ||
|
|
229
|
+
ts.isSetAccessorDeclaration(node)) {
|
|
230
|
+
if (!hasDecorator(node) && !node.parameters.some(hasDecorator))
|
|
231
|
+
return;
|
|
232
|
+
for (const parameter of node.parameters)
|
|
233
|
+
recordMetadataType(parameter.type, record);
|
|
234
|
+
recordMetadataType(node.type, record);
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
if (ts.isPropertyDeclaration(node)) {
|
|
238
|
+
if (hasDecorator(node))
|
|
239
|
+
recordMetadataType(node.type, record);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
if (ts.isClassDeclaration(node) || ts.isClassExpression(node)) {
|
|
243
|
+
const constructors = node.members.filter(ts.isConstructorDeclaration);
|
|
244
|
+
const parameters = constructors.flatMap((constructor) => [...constructor.parameters]);
|
|
245
|
+
if (!hasDecorator(node) && !parameters.some(hasDecorator))
|
|
246
|
+
return;
|
|
247
|
+
for (const parameter of parameters)
|
|
248
|
+
recordMetadataType(parameter.type, record);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
function recordMetadataType(type, record) {
|
|
252
|
+
if (type === undefined)
|
|
253
|
+
return;
|
|
254
|
+
if (ts.isTypeReferenceNode(type)) {
|
|
255
|
+
record(leftmostName(type.typeName));
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
if (ts.isParenthesizedTypeNode(type) || ts.isTypeOperatorNode(type)) {
|
|
259
|
+
recordMetadataType(type.type, record);
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
if (ts.isUnionTypeNode(type) || ts.isIntersectionTypeNode(type)) {
|
|
263
|
+
for (const member of type.types)
|
|
264
|
+
recordMetadataType(member, record);
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
if (ts.isConditionalTypeNode(type)) {
|
|
268
|
+
recordMetadataType(type.trueType, record);
|
|
269
|
+
recordMetadataType(type.falseType, record);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
function leftmostName(name) {
|
|
273
|
+
return ts.isIdentifier(name) ? name.text : leftmostName(name.left);
|
|
274
|
+
}
|
|
275
|
+
function hasDecorator(node) {
|
|
276
|
+
return ts.canHaveDecorators(node) && (ts.getDecorators(node)?.length ?? 0) > 0;
|
|
277
|
+
}
|
|
278
|
+
function isReference(node) {
|
|
279
|
+
const parent = node.parent;
|
|
280
|
+
if ((ts.isPropertyAccessExpression(parent) || ts.isPropertyAccessChain(parent)) &&
|
|
281
|
+
parent.name === node) {
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
if (ts.isQualifiedName(parent) && parent.right === node)
|
|
285
|
+
return false;
|
|
286
|
+
if (ts.isPropertyAssignment(parent) && parent.name === node)
|
|
287
|
+
return false;
|
|
288
|
+
if (ts.isJsxAttribute(parent) && parent.name === node)
|
|
289
|
+
return false;
|
|
290
|
+
if (ts.isBindingElement(parent) && parent.propertyName === node)
|
|
291
|
+
return false;
|
|
292
|
+
if ((ts.isMethodDeclaration(parent) ||
|
|
293
|
+
ts.isPropertyDeclaration(parent) ||
|
|
294
|
+
ts.isGetAccessorDeclaration(parent) ||
|
|
295
|
+
ts.isSetAccessorDeclaration(parent) ||
|
|
296
|
+
ts.isPropertySignature(parent) ||
|
|
297
|
+
ts.isMethodSignature(parent) ||
|
|
298
|
+
ts.isEnumMember(parent)) &&
|
|
299
|
+
parent.name === node) {
|
|
300
|
+
return false;
|
|
301
|
+
}
|
|
302
|
+
return true;
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=loadsTarget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadsTarget.js","sourceRoot":"","sources":["../../src/parser/loadsTarget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type * as ts from 'typescript';
|
|
2
|
+
export type EdgeKind = 'static' | 'type' | 're-export' | 'dynamic' | 'require' | 'side-effect';
|
|
3
|
+
export type SiteForm = 'declaration' | 'type-context';
|
|
4
|
+
export type UnsupportedReason = 'non-literal' | 'shadowed-require' | 'jsdoc-import-type';
|
|
5
|
+
export type LoadReason = 'syntax' | 'usage' | 'retained';
|
|
6
|
+
export interface ImportBinding {
|
|
7
|
+
local: string;
|
|
8
|
+
imported: string | '*' | 'default';
|
|
9
|
+
typeOnly: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface ImportSite {
|
|
12
|
+
specifier: string;
|
|
13
|
+
line: number;
|
|
14
|
+
column: number;
|
|
15
|
+
kind: EdgeKind;
|
|
16
|
+
form: SiteForm;
|
|
17
|
+
bindings: ImportBinding[];
|
|
18
|
+
deferred?: boolean;
|
|
19
|
+
unsupported?: UnsupportedReason;
|
|
20
|
+
loadsTarget?: boolean;
|
|
21
|
+
loadsTargetBy?: LoadReason;
|
|
22
|
+
loadReason?: string;
|
|
23
|
+
node: ts.Node;
|
|
24
|
+
}
|
|
25
|
+
export interface ParsedFile {
|
|
26
|
+
file: string;
|
|
27
|
+
sourceFile: ts.SourceFile;
|
|
28
|
+
sites: ImportSite[];
|
|
29
|
+
directives: string[];
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/parser/types.ts"],"names":[],"mappings":""}
|