packtory 0.0.9 → 0.0.10
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/artifacts/artifacts-builder.js +0 -75
- package/artifacts/artifacts-builder.js.map +1 -1
- package/bundle-emitter/emitter.js +0 -34
- package/bundle-emitter/emitter.js.map +1 -1
- package/bundle-emitter/extract-package-tarball.js +0 -11
- package/bundle-emitter/extract-package-tarball.js.map +1 -1
- package/bundle-emitter/registry-client.js +0 -261
- package/bundle-emitter/registry-client.js.map +1 -1
- package/bundle-emitter/repository-url-normalizer.js +0 -36
- package/bundle-emitter/repository-url-normalizer.js.map +1 -1
- package/checks/check-runner.js +0 -5
- package/checks/check-runner.js.map +1 -1
- package/checks/rule.js +0 -8
- package/checks/rule.js.map +1 -1
- package/checks/rules/max-bundle-size.js +0 -35
- package/checks/rules/max-bundle-size.js.map +1 -1
- package/checks/rules/no-dev-dependency-imports.js +0 -28
- package/checks/rules/no-dev-dependency-imports.js.map +1 -1
- package/checks/rules/no-duplicated-files.js +0 -107
- package/checks/rules/no-duplicated-files.js.map +1 -1
- package/checks/rules/no-side-effects.js +0 -42
- package/checks/rules/no-side-effects.js.map +1 -1
- package/checks/rules/no-unused-bundle-dependencies.js +0 -24
- package/checks/rules/no-unused-bundle-dependencies.js.map +1 -1
- package/checks/rules/registry.js +0 -9
- package/checks/rules/registry.js.map +1 -1
- package/checks/rules/required-files.js +0 -31
- package/checks/rules/required-files.js.map +1 -1
- package/checks/rules/unique-target-paths.js +0 -25
- package/checks/rules/unique-target-paths.js.map +1 -1
- package/config/additional-files.js +0 -4
- package/config/additional-files.js.map +1 -1
- package/config/automatic-versioning-settings.js +0 -4
- package/config/automatic-versioning-settings.js.map +1 -1
- package/config/config.js +0 -2
- package/config/config.js.map +1 -1
- package/config/dead-code-elimination-settings.d.ts +6 -0
- package/config/dead-code-elimination-settings.d.ts.map +1 -1
- package/config/dead-code-elimination-settings.js +1 -3
- package/config/dead-code-elimination-settings.js.map +1 -1
- package/config/dependency-policy.js +0 -3
- package/config/dependency-policy.js.map +1 -1
- package/config/main-package-json-schema.js +0 -1
- package/config/main-package-json-schema.js.map +1 -1
- package/config/manual-versioning-settings.js +0 -4
- package/config/manual-versioning-settings.js.map +1 -1
- package/config/package-config.js +0 -6
- package/config/package-config.js.map +1 -1
- package/config/package-interface.d.ts +2 -0
- package/config/package-interface.d.ts.map +1 -1
- package/config/package-interface.js +0 -23
- package/config/package-interface.js.map +1 -1
- package/config/package-json.d.ts +0 -1
- package/config/package-json.d.ts.map +1 -1
- package/config/package-json.js +0 -16
- package/config/package-json.js.map +1 -1
- package/config/packtory-config-schema.js +0 -3
- package/config/packtory-config-schema.js.map +1 -1
- package/config/publish-settings.js +0 -22
- package/config/publish-settings.js.map +1 -1
- package/config/registry-settings.d.ts +0 -20
- package/config/registry-settings.d.ts.map +1 -1
- package/config/registry-settings.js +0 -38
- package/config/registry-settings.js.map +1 -1
- package/config/root.js +0 -4
- package/config/root.js.map +1 -1
- package/config/sbom-settings.js +0 -3
- package/config/sbom-settings.js.map +1 -1
- package/config/validation.d.ts.map +1 -1
- package/config/validation.js +0 -232
- package/config/validation.js.map +1 -1
- package/config/versioning-settings.js +0 -1
- package/config/versioning-settings.js.map +1 -1
- package/dead-code-eliminator/analyzed-bundle.d.ts +2 -0
- package/dead-code-eliminator/analyzed-bundle.d.ts.map +1 -1
- package/dead-code-eliminator/analyzed-bundle.js +0 -7
- package/dead-code-eliminator/analyzed-bundle.js.map +1 -1
- package/dead-code-eliminator/eliminator.js +3 -2
- package/dead-code-eliminator/eliminator.js.map +1 -1
- package/dead-code-eliminator/load-bundle.js +7 -6
- package/dead-code-eliminator/load-bundle.js.map +1 -1
- package/dead-code-eliminator/reachability/impure-statements.js +2 -2
- package/dead-code-eliminator/reachability/impure-statements.js.map +1 -1
- package/dead-code-eliminator/reachability/reachability.js +3 -3
- package/dead-code-eliminator/reachability/reachability.js.map +1 -1
- package/dead-code-eliminator/side-effect-classifier.js +141 -24
- package/dead-code-eliminator/side-effect-classifier.js.map +1 -1
- package/dependency-scanner/dependency-graph.d.ts +0 -2
- package/dependency-scanner/dependency-graph.d.ts.map +1 -1
- package/dependency-scanner/dependency-graph.js +0 -73
- package/dependency-scanner/dependency-graph.js.map +1 -1
- package/dependency-scanner/external-dependencies.d.ts +0 -1
- package/dependency-scanner/external-dependencies.d.ts.map +1 -1
- package/dependency-scanner/external-dependencies.js +0 -16
- package/dependency-scanner/external-dependencies.js.map +1 -1
- package/dependency-scanner/scanner.js +0 -69
- package/dependency-scanner/scanner.js.map +1 -1
- package/dependency-scanner/source-file-references.js +0 -26
- package/dependency-scanner/source-file-references.js.map +1 -1
- package/dependency-scanner/source-map-file-locator.js +0 -27
- package/dependency-scanner/source-map-file-locator.js.map +1 -1
- package/dependency-scanner/typescript-file-host.js +0 -114
- package/dependency-scanner/typescript-file-host.js.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.d.ts +0 -1
- package/dependency-scanner/typescript-project-analyzer.d.ts.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.js +0 -52
- package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
- package/directed-graph/graph.d.ts +0 -1
- package/directed-graph/graph.d.ts.map +1 -1
- package/directed-graph/graph.js +0 -229
- package/directed-graph/graph.js.map +1 -1
- package/file-manager/compare.js +0 -17
- package/file-manager/compare.js.map +1 -1
- package/file-manager/equal.js +0 -5
- package/file-manager/equal.js.map +1 -1
- package/file-manager/file-manager.js +0 -52
- package/file-manager/file-manager.js.map +1 -1
- package/file-manager/permissions.js +0 -26
- package/file-manager/permissions.js.map +1 -1
- package/linker/linker.js +0 -23
- package/linker/linker.js.map +1 -1
- package/linker/resource-graph.js +0 -25
- package/linker/resource-graph.js.map +1 -1
- package/linker/source-modifier/import-paths.js +0 -22
- package/linker/source-modifier/import-paths.js.map +1 -1
- package/linker/substitute-bundles.js +0 -79
- package/linker/substitute-bundles.js.map +1 -1
- package/linker/substituted-resource-graph.js +0 -72
- package/linker/substituted-resource-graph.js.map +1 -1
- package/package-surface/modules.js +12 -230
- package/package-surface/modules.js.map +1 -1
- package/package-surface/surface.d.ts +0 -2
- package/package-surface/surface.d.ts.map +1 -1
- package/package-surface/surface.js +0 -15
- package/package-surface/surface.js.map +1 -1
- package/package.json +41 -3
- package/packtory/map-config.js +0 -14
- package/packtory/map-config.js.map +1 -1
- package/packtory/normalize-paths.js +0 -24
- package/packtory/normalize-paths.js.map +1 -1
- package/packtory/package-processor-build.js +0 -72
- package/packtory/package-processor-build.js.map +1 -1
- package/packtory/package-processor-publish.d.ts +0 -11
- package/packtory/package-processor-publish.d.ts.map +1 -1
- package/packtory/package-processor-publish.js +0 -133
- package/packtory/package-processor-publish.js.map +1 -1
- package/packtory/package-processor.js +0 -8
- package/packtory/package-processor.js.map +1 -1
- package/packtory/packtory-resolve.js +16 -9
- package/packtory/packtory-resolve.js.map +1 -1
- package/packtory/packtory-results.js +0 -15
- package/packtory/packtory-results.js.map +1 -1
- package/packtory/prepare-package-options.d.ts +2 -14
- package/packtory/prepare-package-options.d.ts.map +1 -1
- package/packtory/prepare-package-options.js +1 -118
- package/packtory/prepare-package-options.js.map +1 -1
- package/packtory/resolved-package.js +0 -31
- package/packtory/resolved-package.js.map +1 -1
- package/progress/progress-broadcaster.js +0 -45
- package/progress/progress-broadcaster.js.map +1 -1
- package/report/artifact-entry-merger.js +0 -20
- package/report/artifact-entry-merger.js.map +1 -1
- package/report/inspectors.js +0 -73
- package/report/inspectors.js.map +1 -1
- package/report/report-aggregator.js +0 -185
- package/report/report-aggregator.js.map +1 -1
- package/resource-resolver/content.js +0 -53
- package/resource-resolver/content.js.map +1 -1
- package/resource-resolver/resource-resolve-options.js +0 -12
- package/resource-resolver/resource-resolve-options.js.map +1 -1
- package/resource-resolver/resource-resolver.js +0 -78
- package/resource-resolver/resource-resolver.js.map +1 -1
- package/sbom/extract-license.js +0 -10
- package/sbom/extract-license.js.map +1 -1
- package/sbom/license-resolver.js +0 -19
- package/sbom/license-resolver.js.map +1 -1
- package/sbom/sbom-file.js +0 -54
- package/sbom/sbom-file.js.map +1 -1
- package/sbom/sbom-serializer.js +0 -9
- package/sbom/sbom-serializer.js.map +1 -1
- package/sbom.cdx.json +390 -0
- package/tar/extract-tar.js +0 -38
- package/tar/extract-tar.js.map +1 -1
- package/version-manager/manager.js +0 -46
- package/version-manager/manager.js.map +1 -1
- package/version-manager/manifest/builder.js +0 -56
- package/version-manager/manifest/builder.js.map +1 -1
- package/version-manager/manifest/serialize.js +0 -46
- package/version-manager/manifest/serialize.js.map +1 -1
- package/version-manager/manifest/sort-values.js +0 -16
- package/version-manager/manifest/sort-values.js.map +1 -1
- package/version-manager/specifier-classifier.js +0 -33
- package/version-manager/specifier-classifier.js.map +1 -1
- package/version-manager/specifier-errors.js +0 -43
- package/version-manager/specifier-errors.js.map +1 -1
- package/version-manager/versioned-bundle-dependencies.js +0 -107
- package/version-manager/versioned-bundle-dependencies.js.map +1 -1
- package/version-manager/versioned-bundle-imports.d.ts +0 -1
- package/version-manager/versioned-bundle-imports.d.ts.map +1 -1
- package/version-manager/versioned-bundle-imports.js +0 -72
- package/version-manager/versioned-bundle-imports.js.map +1 -1
- package/version-manager/versioned-bundle.d.ts +0 -1
- package/version-manager/versioned-bundle.d.ts.map +1 -1
- package/version-manager/versioned-bundle.js +0 -60
- package/version-manager/versioned-bundle.js.map +1 -1
|
@@ -67,6 +67,24 @@ const controlFlowStatementKinds = new Map([
|
|
|
67
67
|
function isBareCssImport(specifier) {
|
|
68
68
|
return specifier.endsWith('.css');
|
|
69
69
|
}
|
|
70
|
+
function unwrapExpression(expression) {
|
|
71
|
+
if (TsMorphNode.isAsExpression(expression)) {
|
|
72
|
+
return unwrapExpression(expression.getExpression());
|
|
73
|
+
}
|
|
74
|
+
if (TsMorphNode.isSatisfiesExpression(expression)) {
|
|
75
|
+
return unwrapExpression(expression.getExpression());
|
|
76
|
+
}
|
|
77
|
+
if (TsMorphNode.isParenthesizedExpression(expression)) {
|
|
78
|
+
return unwrapExpression(expression.getExpression());
|
|
79
|
+
}
|
|
80
|
+
if (TsMorphNode.isTypeAssertion(expression)) {
|
|
81
|
+
return unwrapExpression(expression.getExpression());
|
|
82
|
+
}
|
|
83
|
+
if (TsMorphNode.isNonNullExpression(expression)) {
|
|
84
|
+
return unwrapExpression(expression.getExpression());
|
|
85
|
+
}
|
|
86
|
+
return expression;
|
|
87
|
+
}
|
|
70
88
|
function isPureArrayElement(element, recurse) {
|
|
71
89
|
if (TsMorphNode.isOmittedExpression(element)) {
|
|
72
90
|
return true;
|
|
@@ -85,6 +103,88 @@ function isPurePropertyAssignment(property, recurse) {
|
|
|
85
103
|
}
|
|
86
104
|
return inherentlyPurePropertyKinds.has(property.getKind());
|
|
87
105
|
}
|
|
106
|
+
function importedOriginForIdentifier(identifier) {
|
|
107
|
+
const symbol = identifier.getSymbol();
|
|
108
|
+
if (symbol === undefined) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
for (const declaration of symbol.getDeclarations()) {
|
|
112
|
+
if (TsMorphNode.isImportSpecifier(declaration)) {
|
|
113
|
+
return {
|
|
114
|
+
from: declaration.getImportDeclaration().getModuleSpecifierValue(),
|
|
115
|
+
path: [declaration.getName()]
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
if (TsMorphNode.isNamespaceImport(declaration)) {
|
|
119
|
+
const importDeclaration = declaration.getFirstAncestorByKindOrThrow(SyntaxKind.ImportDeclaration);
|
|
120
|
+
return {
|
|
121
|
+
from: importDeclaration.getModuleSpecifierValue(),
|
|
122
|
+
path: []
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
if (TsMorphNode.isImportClause(declaration) && declaration.getDefaultImport() !== undefined) {
|
|
126
|
+
const importDeclaration = declaration.getFirstAncestorByKindOrThrow(SyntaxKind.ImportDeclaration);
|
|
127
|
+
return {
|
|
128
|
+
from: importDeclaration.getModuleSpecifierValue(),
|
|
129
|
+
path: ['default']
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
function expressionOriginIsTrusted(origin, settings) {
|
|
136
|
+
if (origin === undefined || settings?.pureImports === undefined) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
return settings.pureImports.some((trustedImport) => {
|
|
140
|
+
if (trustedImport.from !== origin.from) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
if (trustedImport.imports === undefined) {
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
const firstPathPart = origin.path[0];
|
|
147
|
+
return firstPathPart !== undefined && trustedImport.imports.includes(firstPathPart);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
function arePureCallArguments(arguments_, recurse) {
|
|
151
|
+
return arguments_.every((argument) => {
|
|
152
|
+
if (TsMorphNode.isSpreadElement(argument)) {
|
|
153
|
+
return recurse(argument.getExpression());
|
|
154
|
+
}
|
|
155
|
+
return recurse(argument);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
function resolveImportedExpressionOrigin(expression, recurse, settings) {
|
|
159
|
+
const unwrapped = unwrapExpression(expression);
|
|
160
|
+
if (TsMorphNode.isIdentifier(unwrapped)) {
|
|
161
|
+
return importedOriginForIdentifier(unwrapped);
|
|
162
|
+
}
|
|
163
|
+
if (TsMorphNode.isPropertyAccessExpression(unwrapped)) {
|
|
164
|
+
const base = resolveImportedExpressionOrigin(unwrapped.getExpression(), recurse, settings);
|
|
165
|
+
if (base === undefined) {
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
return { from: base.from, path: [...base.path, unwrapped.getName()] };
|
|
169
|
+
}
|
|
170
|
+
if (TsMorphNode.isCallExpression(unwrapped)) {
|
|
171
|
+
if (!isPureCallExpression(unwrapped, recurse, settings)) {
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
return resolveImportedExpressionOrigin(unwrapped.getExpression(), recurse, settings);
|
|
175
|
+
}
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
function isPureCallExpression(expression, recurse, settings) {
|
|
179
|
+
return (expressionOriginIsTrusted(resolveImportedExpressionOrigin(expression.getExpression(), recurse, settings), settings) &&
|
|
180
|
+
arePureCallArguments(expression.getArguments(), recurse));
|
|
181
|
+
}
|
|
182
|
+
function isPureNewExpression(expression, recurse, settings) {
|
|
183
|
+
const constructorExpression = unwrapExpression(expression.getExpression());
|
|
184
|
+
return (TsMorphNode.isIdentifier(constructorExpression) &&
|
|
185
|
+
settings?.pureConstructors?.includes(constructorExpression.getText()) === true &&
|
|
186
|
+
arePureCallArguments(expression.getArguments(), recurse));
|
|
187
|
+
}
|
|
88
188
|
const expressionPurityRules = new Map([
|
|
89
189
|
[
|
|
90
190
|
SyntaxKind.TemplateExpression,
|
|
@@ -165,14 +265,29 @@ const expressionPurityRules = new Map([
|
|
|
165
265
|
}
|
|
166
266
|
return recurse(binary.getLeft()) && recurse(binary.getRight());
|
|
167
267
|
}
|
|
268
|
+
],
|
|
269
|
+
[
|
|
270
|
+
SyntaxKind.CallExpression,
|
|
271
|
+
(expression, recurse, settings) => {
|
|
272
|
+
return isPureCallExpression(expression.asKindOrThrow(SyntaxKind.CallExpression), recurse, settings);
|
|
273
|
+
}
|
|
274
|
+
],
|
|
275
|
+
[
|
|
276
|
+
SyntaxKind.NewExpression,
|
|
277
|
+
(expression, recurse, settings) => {
|
|
278
|
+
return isPureNewExpression(expression.asKindOrThrow(SyntaxKind.NewExpression), recurse, settings);
|
|
279
|
+
}
|
|
168
280
|
]
|
|
169
281
|
]);
|
|
170
|
-
function isPureExpression(expression) {
|
|
282
|
+
function isPureExpression(expression, settings) {
|
|
283
|
+
const recurse = (candidate) => {
|
|
284
|
+
return isPureExpression(candidate, settings);
|
|
285
|
+
};
|
|
171
286
|
const kind = expression.getKind();
|
|
172
287
|
if (pureLeafKinds.has(kind)) {
|
|
173
288
|
return true;
|
|
174
289
|
}
|
|
175
|
-
return expressionPurityRules.get(kind)?.(expression,
|
|
290
|
+
return expressionPurityRules.get(kind)?.(expression, recurse, settings) ?? false;
|
|
176
291
|
}
|
|
177
292
|
function memberHasDecorators(member) {
|
|
178
293
|
if (TsMorphNode.isMethodDeclaration(member) ||
|
|
@@ -183,24 +298,26 @@ function memberHasDecorators(member) {
|
|
|
183
298
|
}
|
|
184
299
|
return false;
|
|
185
300
|
}
|
|
186
|
-
function memberHasImpureStaticInit(member) {
|
|
301
|
+
function memberHasImpureStaticInit(member, settings) {
|
|
187
302
|
if (!TsMorphNode.isPropertyDeclaration(member) || !member.isStatic()) {
|
|
188
303
|
return false;
|
|
189
304
|
}
|
|
190
305
|
const initializer = member.getInitializer();
|
|
191
|
-
return initializer !== undefined && !isPureExpression(initializer);
|
|
306
|
+
return initializer !== undefined && !isPureExpression(initializer, settings);
|
|
192
307
|
}
|
|
193
|
-
function classMemberIsImpure(member) {
|
|
308
|
+
function classMemberIsImpure(member, settings) {
|
|
194
309
|
if (TsMorphNode.isClassStaticBlockDeclaration(member)) {
|
|
195
310
|
return true;
|
|
196
311
|
}
|
|
197
|
-
return memberHasDecorators(member) || memberHasImpureStaticInit(member);
|
|
312
|
+
return memberHasDecorators(member) || memberHasImpureStaticInit(member, settings);
|
|
198
313
|
}
|
|
199
|
-
function hasClassImpurity(classDeclaration) {
|
|
314
|
+
function hasClassImpurity(classDeclaration, settings) {
|
|
200
315
|
if (classDeclaration.getDecorators().length > 0) {
|
|
201
316
|
return true;
|
|
202
317
|
}
|
|
203
|
-
return classDeclaration.getMembers().some(
|
|
318
|
+
return classDeclaration.getMembers().some((member) => {
|
|
319
|
+
return classMemberIsImpure(member, settings);
|
|
320
|
+
});
|
|
204
321
|
}
|
|
205
322
|
function classifyImportDeclaration(statement) {
|
|
206
323
|
if (isBareCssImport(statement.getModuleSpecifierValue())) {
|
|
@@ -208,22 +325,22 @@ function classifyImportDeclaration(statement) {
|
|
|
208
325
|
}
|
|
209
326
|
return undefined;
|
|
210
327
|
}
|
|
211
|
-
function classifyExportAssignment(statement) {
|
|
212
|
-
if (isPureExpression(statement.getExpression())) {
|
|
328
|
+
function classifyExportAssignment(statement, settings) {
|
|
329
|
+
if (isPureExpression(statement.getExpression(), settings)) {
|
|
213
330
|
return undefined;
|
|
214
331
|
}
|
|
215
332
|
return 'export assignment';
|
|
216
333
|
}
|
|
217
|
-
function classifyClassDeclaration(statement) {
|
|
218
|
-
if (hasClassImpurity(statement)) {
|
|
334
|
+
function classifyClassDeclaration(statement, settings) {
|
|
335
|
+
if (hasClassImpurity(statement, settings)) {
|
|
219
336
|
return 'class declaration';
|
|
220
337
|
}
|
|
221
338
|
return undefined;
|
|
222
339
|
}
|
|
223
|
-
function classifyVariableStatement(statement) {
|
|
340
|
+
function classifyVariableStatement(statement, settings) {
|
|
224
341
|
const hasImpureInitializer = statement.getDeclarations().some((declarator) => {
|
|
225
342
|
const initializer = declarator.getInitializer();
|
|
226
|
-
return initializer !== undefined && !isPureExpression(initializer);
|
|
343
|
+
return initializer !== undefined && !isPureExpression(initializer, settings);
|
|
227
344
|
});
|
|
228
345
|
if (hasImpureInitializer) {
|
|
229
346
|
return 'variable initializer';
|
|
@@ -239,20 +356,20 @@ const statementClassifiers = new Map([
|
|
|
239
356
|
],
|
|
240
357
|
[
|
|
241
358
|
SyntaxKind.ExportAssignment,
|
|
242
|
-
(statement) => {
|
|
243
|
-
return classifyExportAssignment(statement.asKindOrThrow(SyntaxKind.ExportAssignment));
|
|
359
|
+
(statement, settings) => {
|
|
360
|
+
return classifyExportAssignment(statement.asKindOrThrow(SyntaxKind.ExportAssignment), settings);
|
|
244
361
|
}
|
|
245
362
|
],
|
|
246
363
|
[
|
|
247
364
|
SyntaxKind.ClassDeclaration,
|
|
248
|
-
(statement) => {
|
|
249
|
-
return classifyClassDeclaration(statement.asKindOrThrow(SyntaxKind.ClassDeclaration));
|
|
365
|
+
(statement, settings) => {
|
|
366
|
+
return classifyClassDeclaration(statement.asKindOrThrow(SyntaxKind.ClassDeclaration), settings);
|
|
250
367
|
}
|
|
251
368
|
],
|
|
252
369
|
[
|
|
253
370
|
SyntaxKind.VariableStatement,
|
|
254
|
-
(statement) => {
|
|
255
|
-
return classifyVariableStatement(statement.asKindOrThrow(SyntaxKind.VariableStatement));
|
|
371
|
+
(statement, settings) => {
|
|
372
|
+
return classifyVariableStatement(statement.asKindOrThrow(SyntaxKind.VariableStatement), settings);
|
|
256
373
|
}
|
|
257
374
|
],
|
|
258
375
|
[
|
|
@@ -262,7 +379,7 @@ const statementClassifiers = new Map([
|
|
|
262
379
|
}
|
|
263
380
|
]
|
|
264
381
|
]);
|
|
265
|
-
function classifyTopLevelStatement(statement) {
|
|
382
|
+
function classifyTopLevelStatement(statement, settings) {
|
|
266
383
|
const kind = statement.getKind();
|
|
267
384
|
if (pureDeclarationKinds.has(kind)) {
|
|
268
385
|
return undefined;
|
|
@@ -273,13 +390,13 @@ function classifyTopLevelStatement(statement) {
|
|
|
273
390
|
}
|
|
274
391
|
const classifier = statementClassifiers.get(kind);
|
|
275
392
|
if (classifier !== undefined) {
|
|
276
|
-
return classifier(statement);
|
|
393
|
+
return classifier(statement, settings);
|
|
277
394
|
}
|
|
278
395
|
return 'unknown statement';
|
|
279
396
|
}
|
|
280
|
-
export function classifySideEffects(sourceFile) {
|
|
397
|
+
export function classifySideEffects(sourceFile, settings) {
|
|
281
398
|
return sourceFile.getStatements().flatMap((statement) => {
|
|
282
|
-
const kind = classifyTopLevelStatement(statement);
|
|
399
|
+
const kind = classifyTopLevelStatement(statement, settings);
|
|
283
400
|
if (kind === undefined) {
|
|
284
401
|
return [];
|
|
285
402
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"side-effect-classifier.js","sourceRoot":"","sources":["../../../../source/dead-code-eliminator/side-effect-classifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"side-effect-classifier.js","sourceRoot":"","sources":["../../../../source/dead-code-eliminator/side-effect-classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,6 @@ export type DependencyFiles = {
|
|
|
20
20
|
readonly localFiles: readonly LocalFile[];
|
|
21
21
|
readonly externalDependencies: ExternalDependencies;
|
|
22
22
|
};
|
|
23
|
-
export declare function mergeDependencyFiles(first: Readonly<DependencyFiles>, second: Readonly<DependencyFiles>): Readonly<DependencyFiles>;
|
|
24
23
|
type DependencyGraphVisitor = (node: Readonly<DependencyNode>) => void;
|
|
25
24
|
export type DependencyGraph = {
|
|
26
25
|
addDependency: (filePath: string, data: DependencyGraphNodeData) => void;
|
|
@@ -30,6 +29,5 @@ export type DependencyGraph = {
|
|
|
30
29
|
isKnown: (filePath: string) => boolean;
|
|
31
30
|
flatten: (startFilePath: string) => Readonly<DependencyFiles>;
|
|
32
31
|
};
|
|
33
|
-
export declare function createDependencyGraph(): DependencyGraph;
|
|
34
32
|
export {};
|
|
35
33
|
//# sourceMappingURL=dependency-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-graph.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/dependency-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"dependency-graph.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/dependency-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU;AAGvC,OAAO,EAEH,KAAK,oBAAoB,EAE5B,MAAM,4BAA4B;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC;AAEzE,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;CACpD;AAED,KAAK,cAAc,GAAG,uBAAuB,GAAG;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;CACvD;AAgBD,KAAK,sBAAsB,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,IAAI;AAEtE,MAAM,MAAM,eAAe,GAAG;IAC1B,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACzE,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IACrE,IAAI,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACvE,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,QAAQ,CAAC,eAAe,CAAC,CAAC;CACjE"}
|
|
@@ -1,77 +1,4 @@
|
|
|
1
1
|
import { indexBy, unique, values } from 'remeda';
|
|
2
2
|
import { createDirectedGraph } from "../directed-graph/graph.js";
|
|
3
3
|
import { mergeExternalDependencies } from "./external-dependencies.js";
|
|
4
|
-
export function mergeDependencyFiles(first, second) {
|
|
5
|
-
return {
|
|
6
|
-
localFiles: values(indexBy([...first.localFiles, ...second.localFiles], (localFile) => {
|
|
7
|
-
return localFile.filePath;
|
|
8
|
-
})),
|
|
9
|
-
externalDependencies: mergeExternalDependencies(first.externalDependencies, second.externalDependencies)
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
export function createDependencyGraph() {
|
|
13
|
-
const graph = createDirectedGraph();
|
|
14
|
-
return {
|
|
15
|
-
addDependency(filePath, data) {
|
|
16
|
-
graph.addNode(filePath, data);
|
|
17
|
-
},
|
|
18
|
-
isKnown: graph.hasNode,
|
|
19
|
-
connect(fromFilePath, toFilePath) {
|
|
20
|
-
graph.connect({ from: fromFilePath, to: toFilePath });
|
|
21
|
-
},
|
|
22
|
-
hasConnection(fromFilePath, toFilePath) {
|
|
23
|
-
return graph.hasConnection({ from: fromFilePath, to: toFilePath });
|
|
24
|
-
},
|
|
25
|
-
walk(startFilePath, visitor) {
|
|
26
|
-
graph.visitBreadthFirstSearch(startFilePath, (node) => {
|
|
27
|
-
visitor({
|
|
28
|
-
filePath: node.id,
|
|
29
|
-
sourceMapFilePath: node.data.sourceMapFilePath,
|
|
30
|
-
externalDependencies: node.data.externalDependencies,
|
|
31
|
-
localFiles: Array.from(node.adjacentNodeIds),
|
|
32
|
-
project: node.data.project
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
},
|
|
36
|
-
flatten(startFilePath) {
|
|
37
|
-
const localFiles = new Map();
|
|
38
|
-
const externalDependencies = new Map();
|
|
39
|
-
graph.visitBreadthFirstSearch(startFilePath, (node) => {
|
|
40
|
-
const directDependencies = new Set(graph.getAdjacentIds(node.id));
|
|
41
|
-
if (node.data.sourceMapFilePath.isJust) {
|
|
42
|
-
directDependencies.add(node.data.sourceMapFilePath.value);
|
|
43
|
-
localFiles.set(node.data.sourceMapFilePath.value, {
|
|
44
|
-
filePath: node.data.sourceMapFilePath.value,
|
|
45
|
-
directDependencies: new Set(),
|
|
46
|
-
project: node.data.project.getProject()
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
localFiles.set(node.id, {
|
|
50
|
-
filePath: node.id,
|
|
51
|
-
directDependencies,
|
|
52
|
-
project: node.data.project.getProject()
|
|
53
|
-
});
|
|
54
|
-
for (const externalDependencyName of node.data.externalDependencies) {
|
|
55
|
-
const externalDependency = externalDependencies.get(externalDependencyName);
|
|
56
|
-
if (externalDependency === undefined) {
|
|
57
|
-
externalDependencies.set(externalDependencyName, {
|
|
58
|
-
name: externalDependencyName,
|
|
59
|
-
referencedFrom: [node.id]
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
externalDependencies.set(externalDependencyName, {
|
|
64
|
-
name: externalDependencyName,
|
|
65
|
-
referencedFrom: unique([...externalDependency.referencedFrom, node.id])
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
return {
|
|
71
|
-
localFiles: Array.from(localFiles.values()),
|
|
72
|
-
externalDependencies
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
4
|
//# sourceMappingURL=dependency-graph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-graph.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/dependency-graph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"dependency-graph.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/dependency-graph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B;AAChE,OAAO,EACH,yBAAyB,EAG5B,MAAM,4BAA4B"}
|
|
@@ -3,5 +3,4 @@ export type ExternalDependency = {
|
|
|
3
3
|
readonly referencedFrom: readonly [string, ...(readonly string[])];
|
|
4
4
|
};
|
|
5
5
|
export type ExternalDependencies = ReadonlyMap<string, ExternalDependency>;
|
|
6
|
-
export declare function mergeExternalDependencies(dependenciesA: ExternalDependencies, dependenciesB: ExternalDependencies): ReadonlyMap<string, ExternalDependency>;
|
|
7
6
|
//# sourceMappingURL=external-dependencies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-dependencies.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/external-dependencies.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACtE
|
|
1
|
+
{"version":3,"file":"external-dependencies.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/external-dependencies.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACtE;AAED,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC"}
|
|
@@ -1,18 +1,2 @@
|
|
|
1
1
|
import { unique } from 'remeda';
|
|
2
|
-
export function mergeExternalDependencies(dependenciesA, dependenciesB) {
|
|
3
|
-
const mergedDependencies = new Map(dependenciesA.entries());
|
|
4
|
-
for (const dependencyB of dependenciesB.values()) {
|
|
5
|
-
const dependencyA = mergedDependencies.get(dependencyB.name);
|
|
6
|
-
if (dependencyA === undefined) {
|
|
7
|
-
mergedDependencies.set(dependencyB.name, dependencyB);
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
mergedDependencies.set(dependencyA.name, {
|
|
11
|
-
name: dependencyA.name,
|
|
12
|
-
referencedFrom: unique([...dependencyA.referencedFrom, ...dependencyB.referencedFrom])
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return mergedDependencies;
|
|
17
|
-
}
|
|
18
2
|
//# sourceMappingURL=external-dependencies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-dependencies.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/external-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"external-dependencies.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/external-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ"}
|
|
@@ -1,73 +1,4 @@
|
|
|
1
1
|
import { Maybe } from 'true-myth/maybe';
|
|
2
2
|
import { unique } from 'remeda';
|
|
3
3
|
import { createDependencyGraph } from "./dependency-graph.js";
|
|
4
|
-
function isNodeModulesPath(filePath) {
|
|
5
|
-
return filePath.includes('/node_modules/');
|
|
6
|
-
}
|
|
7
|
-
function isLocalPath(filePath) {
|
|
8
|
-
return !isNodeModulesPath(filePath);
|
|
9
|
-
}
|
|
10
|
-
function extractModuleName(nodeModulePath) {
|
|
11
|
-
const prefix = '/node_modules/';
|
|
12
|
-
const pattern = /\/node_modules\/(?:[^@]+?|(?:@.+?\/.+?))\//;
|
|
13
|
-
const result = pattern.exec(nodeModulePath);
|
|
14
|
-
if (result === null) {
|
|
15
|
-
throw new Error(`Couldn’t find node_modules package name for '${nodeModulePath}'`);
|
|
16
|
-
}
|
|
17
|
-
return result[0].slice(prefix.length, -1);
|
|
18
|
-
}
|
|
19
|
-
function determineLocalDependencies(dependencies) {
|
|
20
|
-
return dependencies.filter(isLocalPath);
|
|
21
|
-
}
|
|
22
|
-
function determineExternalDependencies(dependencies) {
|
|
23
|
-
const modulePaths = dependencies.filter(isNodeModulesPath);
|
|
24
|
-
const moduleNames = modulePaths.map(extractModuleName);
|
|
25
|
-
const uniqueModuleNames = unique(moduleNames);
|
|
26
|
-
return uniqueModuleNames;
|
|
27
|
-
}
|
|
28
|
-
export function createDependencyScanner(dependencyScannerDependencies) {
|
|
29
|
-
const { sourceMapFileLocator, typescriptProjectAnalyzer } = dependencyScannerDependencies;
|
|
30
|
-
async function getDependencyNodeData(project, sourceFilePath, referencedFilePaths, options) {
|
|
31
|
-
const sourceMapFilePath = options.includeSourceMapFiles
|
|
32
|
-
? await sourceMapFileLocator.locate(sourceFilePath)
|
|
33
|
-
: Maybe.nothing();
|
|
34
|
-
const externalDependencies = determineExternalDependencies(referencedFilePaths);
|
|
35
|
-
return {
|
|
36
|
-
sourceMapFilePath,
|
|
37
|
-
externalDependencies,
|
|
38
|
-
project
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
async function scanDependenciesOfSourceFile(project, sourceFilePath, graph, options) {
|
|
42
|
-
const referencedFilePaths = project.getReferencedSourceFilePaths(sourceFilePath);
|
|
43
|
-
const localFiles = determineLocalDependencies(referencedFilePaths);
|
|
44
|
-
const nodeData = await getDependencyNodeData(project, sourceFilePath, referencedFilePaths, options);
|
|
45
|
-
graph.addDependency(sourceFilePath, nodeData);
|
|
46
|
-
for (const localeFile of localFiles) {
|
|
47
|
-
if (!graph.isKnown(localeFile)) {
|
|
48
|
-
await scanDependenciesOfSourceFile(project, localeFile, graph, options);
|
|
49
|
-
}
|
|
50
|
-
if (!graph.hasConnection(sourceFilePath, localeFile)) {
|
|
51
|
-
graph.connect(sourceFilePath, localeFile);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return {
|
|
56
|
-
async scan(entryPointFile, folder, options) {
|
|
57
|
-
const { resolveDeclarationFiles = false, includeSourceMapFiles = false, mainPackageJson } = options;
|
|
58
|
-
const scanOptions = {
|
|
59
|
-
includeSourceMapFiles,
|
|
60
|
-
resolveDeclarationFiles,
|
|
61
|
-
mainPackageJson
|
|
62
|
-
};
|
|
63
|
-
const graph = createDependencyGraph();
|
|
64
|
-
const project = typescriptProjectAnalyzer.analyzeProject(folder, {
|
|
65
|
-
resolveDeclarationFiles: scanOptions.resolveDeclarationFiles,
|
|
66
|
-
mainPackageJson: scanOptions.mainPackageJson
|
|
67
|
-
});
|
|
68
|
-
await scanDependenciesOfSourceFile(project, entryPointFile, graph, scanOptions);
|
|
69
|
-
return graph;
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
4
|
//# sourceMappingURL=scanner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ;AAI/B,OAAO,EAAE,qBAAqB,EAAsD,MAAM,uBAAuB"}
|
|
@@ -1,30 +1,4 @@
|
|
|
1
1
|
import { isBuiltin } from 'node:module';
|
|
2
2
|
import { isDefined } from 'remeda';
|
|
3
3
|
import { ts } from 'ts-morph';
|
|
4
|
-
export function resolveSourceFileForLiteral(literal, containingSourceFile) {
|
|
5
|
-
const project = containingSourceFile.getProject();
|
|
6
|
-
const result = ts.resolveModuleName(literal.getLiteralValue(), containingSourceFile.getFilePath(), project.getCompilerOptions(), project.getModuleResolutionHost());
|
|
7
|
-
if (result.resolvedModule !== undefined) {
|
|
8
|
-
const resolvedFilePath = result.resolvedModule.resolvedFileName;
|
|
9
|
-
return project.getSourceFile(resolvedFilePath);
|
|
10
|
-
}
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
export function getReferencedSourceFiles(sourceFile) {
|
|
14
|
-
const importStringLiterals = sourceFile.getImportStringLiterals();
|
|
15
|
-
return importStringLiterals
|
|
16
|
-
.map((literal) => {
|
|
17
|
-
const referencedSourceFile = resolveSourceFileForLiteral(literal, sourceFile);
|
|
18
|
-
if (referencedSourceFile === undefined) {
|
|
19
|
-
const importValue = literal.getLiteralValue();
|
|
20
|
-
if (isBuiltin(importValue)) {
|
|
21
|
-
return undefined;
|
|
22
|
-
}
|
|
23
|
-
const message = `Failed to resolve import "${importValue}" in file "${sourceFile.getFilePath()}"`;
|
|
24
|
-
throw new Error(message);
|
|
25
|
-
}
|
|
26
|
-
return referencedSourceFile;
|
|
27
|
-
})
|
|
28
|
-
.filter(isDefined);
|
|
29
|
-
}
|
|
30
4
|
//# sourceMappingURL=source-file-references.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-file-references.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-file-references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"source-file-references.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-file-references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ;AAClC,OAAO,EAAE,EAAE,EAAuC,MAAM,UAAU"}
|
|
@@ -1,30 +1,3 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { Maybe } from 'true-myth';
|
|
3
|
-
function getSourceMappingUrl(fileContent) {
|
|
4
|
-
for (const line of fileContent.split('\n')) {
|
|
5
|
-
if (line.startsWith('//# sourceMappingURL=')) {
|
|
6
|
-
const sourceMappingUrl = line.slice('//# sourceMappingURL='.length);
|
|
7
|
-
return sourceMappingUrl === '' ? undefined : sourceMappingUrl;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
return undefined;
|
|
11
|
-
}
|
|
12
|
-
export function createSourceMapFileLocator(dependencies) {
|
|
13
|
-
const { fileManager } = dependencies;
|
|
14
|
-
return {
|
|
15
|
-
async locate(sourceFile) {
|
|
16
|
-
const fileContent = await fileManager.readFile(sourceFile);
|
|
17
|
-
const sourceMappingUrl = getSourceMappingUrl(fileContent);
|
|
18
|
-
if (sourceMappingUrl !== undefined) {
|
|
19
|
-
const folder = path.dirname(sourceFile);
|
|
20
|
-
const sourceMappingFile = path.join(folder, sourceMappingUrl);
|
|
21
|
-
const { isReadable } = await fileManager.checkReadability(sourceMappingFile);
|
|
22
|
-
if (isReadable) {
|
|
23
|
-
return Maybe.just(sourceMappingFile);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return Maybe.nothing();
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
3
|
//# sourceMappingURL=source-map-file-locator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-map-file-locator.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-map-file-locator.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"source-map-file-locator.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-map-file-locator.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW"}
|