@craft-ng/dev-tools 0.1.5 → 0.1.6
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/package.json
CHANGED
|
@@ -57,6 +57,13 @@ export type ExistingDependencyGroupsResult = {
|
|
|
57
57
|
depsObjectNode?: Node;
|
|
58
58
|
propertyNodes: Partial<Record<keyof DependencyGroups, Node>>;
|
|
59
59
|
};
|
|
60
|
+
type InjectedDependencyDescriptor = {
|
|
61
|
+
dependencyText: string;
|
|
62
|
+
entry: GeneratedDependencyEntry;
|
|
63
|
+
};
|
|
64
|
+
type InjectCallDependencyExtractionResult = DependencyExtractionResult & {
|
|
65
|
+
generatedDependencies: InjectedDependencyDescriptor[];
|
|
66
|
+
};
|
|
60
67
|
type RunFileReport = TransformResult & {
|
|
61
68
|
filePath: string;
|
|
62
69
|
};
|
|
@@ -74,7 +81,7 @@ export declare function getAngularKind(classDeclaration: ClassDeclaration): Angu
|
|
|
74
81
|
export declare function isStandaloneDeclarable(classDeclaration: ClassDeclaration): boolean;
|
|
75
82
|
export declare function extractDecoratorMetadataDeps(classDeclaration: ClassDeclaration, angularKind?: AngularKind | undefined, options?: AngularBrandCodemodOptions): DependencyExtractionResult;
|
|
76
83
|
export declare function extractConstructorDeps(classDeclaration: ClassDeclaration): DependencyExtractionResult;
|
|
77
|
-
export declare function extractInjectCallDeps(classDeclaration: ClassDeclaration):
|
|
84
|
+
export declare function extractInjectCallDeps(classDeclaration: ClassDeclaration): InjectCallDependencyExtractionResult;
|
|
78
85
|
export declare function mergeDeps(...dependencyGroups: readonly string[][]): string[];
|
|
79
86
|
export declare function writeGeneratedDepsTypeAlias(sourceFile: SourceFile, className: string, generatedDependencyGroups: GeneratedDependencyGroups): void;
|
|
80
87
|
export declare function migrateLegacyBrandExport(sourceFile: SourceFile, classDeclaration: ClassDeclaration, className: string): void;
|
|
@@ -127,7 +127,13 @@ export function analyzeSourceFileDependencies(sourceFile, options = {}) {
|
|
|
127
127
|
providers: mergeDeps(metadataDeps.providers, metadataDeps.viewProviders),
|
|
128
128
|
};
|
|
129
129
|
result.generatedTypeName = getGeneratedDepsTypeName(className);
|
|
130
|
-
result.generatedDependencyGroups = createGeneratedDependencyGroups(sourceFile, result.dependencyGroups.importDeps,
|
|
130
|
+
result.generatedDependencyGroups = createGeneratedDependencyGroups(sourceFile, result.dependencyGroups.importDeps, [
|
|
131
|
+
...constructorDeps.dependencies.map((dependencyText) => ({
|
|
132
|
+
dependencyText,
|
|
133
|
+
entry: createGeneratedDependencyEntry(sourceFile, dependencyText, 'inject'),
|
|
134
|
+
})),
|
|
135
|
+
...injectCallDeps.generatedDependencies,
|
|
136
|
+
], providedDeps.entries);
|
|
131
137
|
return result;
|
|
132
138
|
}
|
|
133
139
|
export function findAngularDecoratedClass(sourceFile) {
|
|
@@ -233,6 +239,8 @@ export function extractInjectCallDeps(classDeclaration) {
|
|
|
233
239
|
var _a;
|
|
234
240
|
const warnings = [];
|
|
235
241
|
const dependencies = [];
|
|
242
|
+
const generatedDependencies = [];
|
|
243
|
+
const sourceFile = classDeclaration.getSourceFile();
|
|
236
244
|
for (const callExpression of classDeclaration.getDescendantsOfKind(SyntaxKind.CallExpression)) {
|
|
237
245
|
const expression = callExpression.getExpression();
|
|
238
246
|
const injectMethodName = getInjectMethodName(expression);
|
|
@@ -247,8 +255,18 @@ export function extractInjectCallDeps(classDeclaration) {
|
|
|
247
255
|
continue;
|
|
248
256
|
}
|
|
249
257
|
dependencies.push(dependency);
|
|
258
|
+
generatedDependencies.push({
|
|
259
|
+
dependencyText: dependency,
|
|
260
|
+
entry: injectMethodName === 'inject'
|
|
261
|
+
? createGeneratedDependencyEntry(sourceFile, dependency, 'inject')
|
|
262
|
+
: createGeneratedInjectHelperDependencyEntry(sourceFile, callExpression, expression, dependency),
|
|
263
|
+
});
|
|
250
264
|
}
|
|
251
|
-
return {
|
|
265
|
+
return {
|
|
266
|
+
dependencies: mergeDeps(dependencies),
|
|
267
|
+
warnings,
|
|
268
|
+
generatedDependencies,
|
|
269
|
+
};
|
|
252
270
|
}
|
|
253
271
|
export function mergeDeps(...dependencyGroups) {
|
|
254
272
|
const seen = new Set();
|
|
@@ -282,16 +300,20 @@ function getGeneratedDepsTypeName(className) {
|
|
|
282
300
|
return `GenDeps_${className}`;
|
|
283
301
|
}
|
|
284
302
|
function createGeneratedDependencyGroups(sourceFile, importDependencies, injectedDependencies, providedEntries) {
|
|
285
|
-
const deps = mergeGeneratedDependencyEntries(importDependencies.map((dependency) => createGeneratedDependencyEntry(sourceFile, dependency, 'import')), injectedDependencies.map((dependency) =>
|
|
303
|
+
const deps = mergeGeneratedDependencyEntries(importDependencies.map((dependency) => createGeneratedDependencyEntry(sourceFile, dependency, 'import')), injectedDependencies.map((dependency) => dependency.entry));
|
|
286
304
|
const provided = mergeGeneratedDependencyEntries(providedEntries);
|
|
287
305
|
const providedKeys = new Set(provided.map((entry) => entry.key));
|
|
306
|
+
const injectedEntriesByKey = new Map(injectedDependencies.map((dependency) => [dependency.entry.key, dependency.entry]));
|
|
288
307
|
const missingProvider = mergeGeneratedDependencyEntries(injectedDependencies
|
|
289
308
|
.filter((dependency) => {
|
|
290
|
-
const dependencyKey =
|
|
309
|
+
const dependencyKey = dependency.entry.key;
|
|
291
310
|
return (!providedKeys.has(dependencyKey) &&
|
|
292
|
-
!
|
|
311
|
+
!isDependencyProvidedElsewhere(sourceFile, dependency.dependencyText));
|
|
293
312
|
})
|
|
294
|
-
.map((dependency) =>
|
|
313
|
+
.map((dependency) => {
|
|
314
|
+
var _a;
|
|
315
|
+
return (_a = injectedEntriesByKey.get(dependency.entry.key)) !== null && _a !== void 0 ? _a : createGeneratedDependencyEntry(sourceFile, dependency.dependencyText, 'inject');
|
|
316
|
+
}));
|
|
295
317
|
return {
|
|
296
318
|
deps,
|
|
297
319
|
provided,
|
|
@@ -331,6 +353,216 @@ function createGeneratedDependencyEntry(sourceFile, dependencyText, context) {
|
|
|
331
353
|
typeText: createGeneratedDependencyTypeText(sourceFile, dependencyText),
|
|
332
354
|
};
|
|
333
355
|
}
|
|
356
|
+
function createGeneratedInjectHelperDependencyEntry(sourceFile, callExpression, expression, dependencyText) {
|
|
357
|
+
const trackedHelper = resolveTrackedInjectHelper(expression);
|
|
358
|
+
if (!trackedHelper) {
|
|
359
|
+
return createGeneratedDependencyEntry(sourceFile, dependencyText, 'inject');
|
|
360
|
+
}
|
|
361
|
+
const exposureTracking = extractHelperExposureTracking(callExpression);
|
|
362
|
+
return {
|
|
363
|
+
key: trackedHelper.serviceName,
|
|
364
|
+
typeText: createTrackedInjectHelperTypeText(dependencyText, exposureTracking),
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
function createTrackedInjectHelperTypeText(dependencyText, exposureTracking) {
|
|
368
|
+
const baseType = `GetInjectedServiceDependencies<typeof ${dependencyText}>`;
|
|
369
|
+
if (!exposureTracking) {
|
|
370
|
+
return [baseType + ' & {', ' usesWholeService: true;', '}'].join('\n');
|
|
371
|
+
}
|
|
372
|
+
return [
|
|
373
|
+
`${baseType} & {`,
|
|
374
|
+
` derivedPropertiesUsed: ${formatHelperExposurePropertiesType(dependencyText, exposureTracking.usedProperties.map((sourceKey) => ({
|
|
375
|
+
propertyKey: sourceKey,
|
|
376
|
+
sourceKey,
|
|
377
|
+
})))};`,
|
|
378
|
+
` derivedPropertiesExposed: ${formatHelperExposurePropertiesType(dependencyText, exposureTracking.exposedProperties.map(({ exposedKey, sourceKey }) => ({
|
|
379
|
+
propertyKey: exposedKey,
|
|
380
|
+
sourceKey,
|
|
381
|
+
})))};`,
|
|
382
|
+
'}',
|
|
383
|
+
].join('\n');
|
|
384
|
+
}
|
|
385
|
+
function formatHelperExposurePropertiesType(dependencyText, properties) {
|
|
386
|
+
if (properties.length === 0) {
|
|
387
|
+
return '{}';
|
|
388
|
+
}
|
|
389
|
+
return [
|
|
390
|
+
'{',
|
|
391
|
+
...properties.map(({ propertyKey, sourceKey }) => ` ${formatObjectKey(propertyKey)}: ${createTrackedHelperOutputTypeText(dependencyText, sourceKey)};`),
|
|
392
|
+
' }',
|
|
393
|
+
].join('\n');
|
|
394
|
+
}
|
|
395
|
+
function createTrackedHelperOutputTypeText(dependencyText, sourceKey) {
|
|
396
|
+
if (sourceKey === '$self') {
|
|
397
|
+
return `GetServiceOutput<typeof ${dependencyText}>`;
|
|
398
|
+
}
|
|
399
|
+
return `GetServiceOutput<typeof ${dependencyText}>[${JSON.stringify(sourceKey)}]`;
|
|
400
|
+
}
|
|
401
|
+
function resolveTrackedInjectHelper(expression) {
|
|
402
|
+
var _a, _b, _c, _d;
|
|
403
|
+
const symbol = (_a = expression.getSymbol()) !== null && _a !== void 0 ? _a : expression.getType().getSymbol();
|
|
404
|
+
const declarations = (_d = (_c = (_b = symbol === null || symbol === void 0 ? void 0 : symbol.getAliasedSymbol()) === null || _b === void 0 ? void 0 : _b.getDeclarations()) !== null && _c !== void 0 ? _c : symbol === null || symbol === void 0 ? void 0 : symbol.getDeclarations()) !== null && _d !== void 0 ? _d : [];
|
|
405
|
+
for (const declaration of declarations) {
|
|
406
|
+
const helper = resolveTrackedInjectHelperFromDeclaration(declaration);
|
|
407
|
+
if (helper) {
|
|
408
|
+
return helper;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
return undefined;
|
|
412
|
+
}
|
|
413
|
+
function resolveTrackedInjectHelperFromDeclaration(declaration) {
|
|
414
|
+
var _a, _b;
|
|
415
|
+
if (!Node.isBindingElement(declaration)) {
|
|
416
|
+
return undefined;
|
|
417
|
+
}
|
|
418
|
+
const objectBindingPattern = declaration.getFirstAncestorByKind(SyntaxKind.ObjectBindingPattern);
|
|
419
|
+
const variableDeclaration = objectBindingPattern === null || objectBindingPattern === void 0 ? void 0 : objectBindingPattern.getFirstAncestorByKind(SyntaxKind.VariableDeclaration);
|
|
420
|
+
const initializer = variableDeclaration === null || variableDeclaration === void 0 ? void 0 : variableDeclaration.getInitializer();
|
|
421
|
+
if (!Node.isCallExpression(initializer) || !isServiceFactoryCall(initializer)) {
|
|
422
|
+
return undefined;
|
|
423
|
+
}
|
|
424
|
+
const [optionsArgument] = initializer.getArguments();
|
|
425
|
+
if (!Node.isObjectLiteralExpression(optionsArgument)) {
|
|
426
|
+
return undefined;
|
|
427
|
+
}
|
|
428
|
+
const nameInitializer = (_a = getObjectPropertyAssignment(optionsArgument, 'name')) === null || _a === void 0 ? void 0 : _a.getInitializer();
|
|
429
|
+
const scopeInitializer = (_b = getObjectPropertyAssignment(optionsArgument, 'scope')) === null || _b === void 0 ? void 0 : _b.getInitializer();
|
|
430
|
+
if (!Node.isStringLiteral(nameInitializer) ||
|
|
431
|
+
!Node.isStringLiteral(scopeInitializer)) {
|
|
432
|
+
return undefined;
|
|
433
|
+
}
|
|
434
|
+
return {
|
|
435
|
+
serviceName: nameInitializer.getLiteralText(),
|
|
436
|
+
scope: scopeInitializer.getLiteralText(),
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
function isServiceFactoryCall(callExpression) {
|
|
440
|
+
const expression = callExpression.getExpression();
|
|
441
|
+
if (Node.isIdentifier(expression)) {
|
|
442
|
+
return expression.getText() === 'craftService' || expression.getText() === 'toCraftService';
|
|
443
|
+
}
|
|
444
|
+
if (Node.isPropertyAccessExpression(expression)) {
|
|
445
|
+
const methodName = expression.getName();
|
|
446
|
+
return methodName === 'craftService' || methodName === 'toCraftService';
|
|
447
|
+
}
|
|
448
|
+
return false;
|
|
449
|
+
}
|
|
450
|
+
function extractHelperExposureTracking(callExpression) {
|
|
451
|
+
const exposeArgument = [...callExpression.getArguments()]
|
|
452
|
+
.reverse()
|
|
453
|
+
.find((argument) => Node.isArrowFunction(argument) || Node.isFunctionExpression(argument));
|
|
454
|
+
if (!exposeArgument ||
|
|
455
|
+
(!Node.isArrowFunction(exposeArgument) &&
|
|
456
|
+
!Node.isFunctionExpression(exposeArgument))) {
|
|
457
|
+
return undefined;
|
|
458
|
+
}
|
|
459
|
+
const parameter = exposeArgument.getParameters()[0];
|
|
460
|
+
const nameNode = parameter === null || parameter === void 0 ? void 0 : parameter.getNameNode();
|
|
461
|
+
if (!nameNode || !Node.isObjectBindingPattern(nameNode)) {
|
|
462
|
+
return undefined;
|
|
463
|
+
}
|
|
464
|
+
const bindings = extractHelperExposureBindings(nameNode);
|
|
465
|
+
if (bindings.length === 0) {
|
|
466
|
+
return undefined;
|
|
467
|
+
}
|
|
468
|
+
const returnObjectLiteral = getExposureReturnObjectLiteral(exposeArgument);
|
|
469
|
+
if (!returnObjectLiteral) {
|
|
470
|
+
return undefined;
|
|
471
|
+
}
|
|
472
|
+
const exposedProperties = extractHelperExposedProperties(returnObjectLiteral, bindings);
|
|
473
|
+
const usedProperties = mergeDeps(exposedProperties.map(({ sourceKey }) => sourceKey), extractHelperYieldedProperties(exposeArgument, bindings));
|
|
474
|
+
return {
|
|
475
|
+
usedProperties,
|
|
476
|
+
exposedProperties,
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
function extractHelperExposureBindings(bindingPattern) {
|
|
480
|
+
var _a;
|
|
481
|
+
const bindings = [];
|
|
482
|
+
for (const element of bindingPattern.getElements()) {
|
|
483
|
+
const nameNode = element.getNameNode();
|
|
484
|
+
if (!Node.isIdentifier(nameNode)) {
|
|
485
|
+
continue;
|
|
486
|
+
}
|
|
487
|
+
const propertyNameNode = element.getPropertyNameNode();
|
|
488
|
+
const sourceKey = (_a = getStaticPropertyName(propertyNameNode !== null && propertyNameNode !== void 0 ? propertyNameNode : nameNode)) !== null && _a !== void 0 ? _a : nameNode.getText();
|
|
489
|
+
bindings.push({
|
|
490
|
+
localName: nameNode.getText(),
|
|
491
|
+
sourceKey,
|
|
492
|
+
});
|
|
493
|
+
}
|
|
494
|
+
return bindings;
|
|
495
|
+
}
|
|
496
|
+
function getExposureReturnObjectLiteral(exposeArgument) {
|
|
497
|
+
const body = exposeArgument.getBody();
|
|
498
|
+
if (Node.isObjectLiteralExpression(body)) {
|
|
499
|
+
return body;
|
|
500
|
+
}
|
|
501
|
+
if (Node.isParenthesizedExpression(body)) {
|
|
502
|
+
const expression = body.getExpression();
|
|
503
|
+
return Node.isObjectLiteralExpression(expression) ? expression : undefined;
|
|
504
|
+
}
|
|
505
|
+
if (!Node.isBlock(body)) {
|
|
506
|
+
return undefined;
|
|
507
|
+
}
|
|
508
|
+
const returnStatement = [...body.getDescendantsOfKind(SyntaxKind.ReturnStatement)]
|
|
509
|
+
.reverse()
|
|
510
|
+
.find((statement) => Node.isObjectLiteralExpression(statement.getExpression()));
|
|
511
|
+
const expression = returnStatement === null || returnStatement === void 0 ? void 0 : returnStatement.getExpression();
|
|
512
|
+
return Node.isObjectLiteralExpression(expression) ? expression : undefined;
|
|
513
|
+
}
|
|
514
|
+
function extractHelperExposedProperties(objectLiteral, bindings) {
|
|
515
|
+
const bindingMap = new Map(bindings.map((binding) => [binding.localName, binding.sourceKey]));
|
|
516
|
+
const exposedProperties = [];
|
|
517
|
+
for (const property of objectLiteral.getProperties()) {
|
|
518
|
+
if (Node.isShorthandPropertyAssignment(property)) {
|
|
519
|
+
const sourceKey = bindingMap.get(property.getName());
|
|
520
|
+
if (sourceKey) {
|
|
521
|
+
exposedProperties.push({
|
|
522
|
+
exposedKey: property.getName(),
|
|
523
|
+
sourceKey,
|
|
524
|
+
});
|
|
525
|
+
}
|
|
526
|
+
continue;
|
|
527
|
+
}
|
|
528
|
+
if (!Node.isPropertyAssignment(property)) {
|
|
529
|
+
continue;
|
|
530
|
+
}
|
|
531
|
+
const exposedKey = getStaticPropertyName(property.getNameNode());
|
|
532
|
+
const initializer = property.getInitializer();
|
|
533
|
+
if (!exposedKey || !Node.isIdentifier(initializer)) {
|
|
534
|
+
continue;
|
|
535
|
+
}
|
|
536
|
+
const sourceKey = bindingMap.get(initializer.getText());
|
|
537
|
+
if (!sourceKey) {
|
|
538
|
+
continue;
|
|
539
|
+
}
|
|
540
|
+
exposedProperties.push({
|
|
541
|
+
exposedKey,
|
|
542
|
+
sourceKey,
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
return exposedProperties;
|
|
546
|
+
}
|
|
547
|
+
function extractHelperYieldedProperties(exposeArgument, bindings) {
|
|
548
|
+
const bindingMap = new Map(bindings.map((binding) => [binding.localName, binding.sourceKey]));
|
|
549
|
+
const yieldedProperties = [];
|
|
550
|
+
for (const yieldExpression of exposeArgument.getDescendantsOfKind(SyntaxKind.YieldExpression)) {
|
|
551
|
+
const expression = yieldExpression.getExpression();
|
|
552
|
+
if (!Node.isCallExpression(expression)) {
|
|
553
|
+
continue;
|
|
554
|
+
}
|
|
555
|
+
const target = expression.getExpression();
|
|
556
|
+
if (!Node.isIdentifier(target)) {
|
|
557
|
+
continue;
|
|
558
|
+
}
|
|
559
|
+
const sourceKey = bindingMap.get(target.getText());
|
|
560
|
+
if (sourceKey) {
|
|
561
|
+
yieldedProperties.push(sourceKey);
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
return yieldedProperties;
|
|
565
|
+
}
|
|
334
566
|
function createGeneratedDependencyKey(dependencyText) {
|
|
335
567
|
var _a;
|
|
336
568
|
const lastSegment = (_a = dependencyText.split('.').pop()) !== null && _a !== void 0 ? _a : dependencyText;
|
|
@@ -430,10 +662,19 @@ function formatGeneratedDependencyObject(entries) {
|
|
|
430
662
|
}
|
|
431
663
|
return [
|
|
432
664
|
'{',
|
|
433
|
-
...entries.map((entry) =>
|
|
665
|
+
...entries.map((entry) => formatGeneratedDependencyEntry(entry)),
|
|
434
666
|
' }',
|
|
435
667
|
].join('\n');
|
|
436
668
|
}
|
|
669
|
+
function formatGeneratedDependencyEntry(entry) {
|
|
670
|
+
const typeLines = entry.typeText.split('\n');
|
|
671
|
+
const lines = [
|
|
672
|
+
` ${formatObjectKey(entry.key)}: ${typeLines[0]}`,
|
|
673
|
+
...typeLines.slice(1).map((line) => ` ${line}`),
|
|
674
|
+
];
|
|
675
|
+
lines[lines.length - 1] += ';';
|
|
676
|
+
return lines.join('\n');
|
|
677
|
+
}
|
|
437
678
|
function formatObjectKey(key) {
|
|
438
679
|
return /^[$A-Z_][0-9A-Z_$]*$/i.test(key) ? key : `'${key}'`;
|
|
439
680
|
}
|
|
@@ -524,7 +765,11 @@ function getInjectionHelperDependency(expression) {
|
|
|
524
765
|
return undefined;
|
|
525
766
|
}
|
|
526
767
|
export function ensureHelperImports(sourceFile, helperImportPath) {
|
|
527
|
-
const missingImports = [
|
|
768
|
+
const missingImports = [
|
|
769
|
+
'GetDeps',
|
|
770
|
+
'GetInjectedServiceDependencies',
|
|
771
|
+
'GetServiceOutput',
|
|
772
|
+
].filter((importName) => !hasLocalNamedImport(sourceFile, helperImportPath, importName));
|
|
528
773
|
if (missingImports.length === 0) {
|
|
529
774
|
return;
|
|
530
775
|
}
|
|
@@ -1107,6 +1352,46 @@ function isProvidedInInjectableTree(sourceFile, dependencyText) {
|
|
|
1107
1352
|
!Node.isFalseLiteral(initializer) &&
|
|
1108
1353
|
!(Node.isIdentifier(initializer) && initializer.getText() === 'undefined'));
|
|
1109
1354
|
}
|
|
1355
|
+
function isDependencyProvidedElsewhere(sourceFile, dependencyText) {
|
|
1356
|
+
const trackedHelper = resolveTrackedInjectHelperByName(sourceFile, dependencyText);
|
|
1357
|
+
if (trackedHelper) {
|
|
1358
|
+
return trackedHelper.scope === 'global' || trackedHelper.scope === 'function';
|
|
1359
|
+
}
|
|
1360
|
+
return isProvidedInInjectableTree(sourceFile, dependencyText);
|
|
1361
|
+
}
|
|
1362
|
+
function resolveTrackedInjectHelperByName(sourceFile, dependencyText) {
|
|
1363
|
+
const [rootIdentifier] = dependencyText.split('.');
|
|
1364
|
+
if (!rootIdentifier) {
|
|
1365
|
+
return undefined;
|
|
1366
|
+
}
|
|
1367
|
+
for (const declaration of resolveDependencyIdentifierDeclarations(sourceFile, rootIdentifier)) {
|
|
1368
|
+
const helper = resolveTrackedInjectHelperFromDeclaration(declaration);
|
|
1369
|
+
if (helper) {
|
|
1370
|
+
return helper;
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
return undefined;
|
|
1374
|
+
}
|
|
1375
|
+
function resolveDependencyIdentifierDeclarations(sourceFile, rootIdentifier) {
|
|
1376
|
+
var _a, _b, _c, _d;
|
|
1377
|
+
for (const importDeclaration of sourceFile.getImportDeclarations()) {
|
|
1378
|
+
const namedImport = importDeclaration.getNamedImports().find((specifier) => {
|
|
1379
|
+
var _a, _b;
|
|
1380
|
+
const localName = (_b = (_a = specifier.getAliasNode()) === null || _a === void 0 ? void 0 : _a.getText()) !== null && _b !== void 0 ? _b : specifier.getNameNode().getText();
|
|
1381
|
+
return localName === rootIdentifier;
|
|
1382
|
+
});
|
|
1383
|
+
if (!namedImport) {
|
|
1384
|
+
continue;
|
|
1385
|
+
}
|
|
1386
|
+
const identifier = (_a = namedImport.getAliasNode()) !== null && _a !== void 0 ? _a : namedImport.getNameNode();
|
|
1387
|
+
const symbol = (_b = identifier.getSymbol()) !== null && _b !== void 0 ? _b : identifier.getType().getSymbol();
|
|
1388
|
+
const aliasedSymbol = (_c = symbol === null || symbol === void 0 ? void 0 : symbol.getAliasedSymbol()) !== null && _c !== void 0 ? _c : symbol;
|
|
1389
|
+
return (_d = aliasedSymbol === null || aliasedSymbol === void 0 ? void 0 : aliasedSymbol.getDeclarations()) !== null && _d !== void 0 ? _d : [namedImport];
|
|
1390
|
+
}
|
|
1391
|
+
return sourceFile
|
|
1392
|
+
.getDescendantsOfKind(SyntaxKind.BindingElement)
|
|
1393
|
+
.filter((bindingElement) => bindingElement.getName() === rootIdentifier);
|
|
1394
|
+
}
|
|
1110
1395
|
function getDependencyTextFromTypeNode(typeNode) {
|
|
1111
1396
|
if (isPrimitiveTypeNode(typeNode)) {
|
|
1112
1397
|
return undefined;
|
|
@@ -1268,7 +1553,11 @@ function getExportRewriteSafety(sourceFile, classDeclaration, className) {
|
|
|
1268
1553
|
: { safe: false, warnings };
|
|
1269
1554
|
}
|
|
1270
1555
|
function getHelperImportSafety(sourceFile, helperImportPath) {
|
|
1271
|
-
const warnings = [
|
|
1556
|
+
const warnings = [
|
|
1557
|
+
'GetDeps',
|
|
1558
|
+
'GetInjectedServiceDependencies',
|
|
1559
|
+
'GetServiceOutput',
|
|
1560
|
+
]
|
|
1272
1561
|
.filter((helperName) => hasConflictingTopLevelBinding(sourceFile, helperImportPath, helperName))
|
|
1273
1562
|
.map((helperName) => `Skipped file because "${helperName}" is already bound to a different top-level symbol.`);
|
|
1274
1563
|
return warnings.length === 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-brand-codemod.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/scripts/angular-brand-codemod.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-brand-codemod.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/scripts/angular-brand-codemod.ts"],"names":[],"mappings":"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"}
|
|
@@ -178,6 +178,81 @@ describe('angular-brand-codemod', () => {
|
|
|
178
178
|
);
|
|
179
179
|
expect(output).toContain('missingProvider: {};');
|
|
180
180
|
});
|
|
181
|
+
|
|
182
|
+
it('tracks craft-service helpers by source service and derived exposed properties', async () => {
|
|
183
|
+
const project = await createProjectFixture({
|
|
184
|
+
'src/angular-core.d.ts': `
|
|
185
|
+
declare module '@angular/core' {
|
|
186
|
+
export declare function Component(metadata: unknown): ClassDecorator;
|
|
187
|
+
export declare function input<T>(): T;
|
|
188
|
+
}
|
|
189
|
+
declare module '@angular/router' {
|
|
190
|
+
export declare class Router {
|
|
191
|
+
navigate(commands: unknown[]): void;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
`,
|
|
195
|
+
'src/craft-ng-core.d.ts': `
|
|
196
|
+
declare module '@craft-ng/core' {
|
|
197
|
+
export declare function craftService(...args: any[]): any;
|
|
198
|
+
export declare function toCraftService(...args: any[]): any;
|
|
199
|
+
export type GetDeps<T> = T;
|
|
200
|
+
export type GetInjectedServiceDependencies<T> = T;
|
|
201
|
+
export type GetServiceOutput<T> = T;
|
|
202
|
+
}
|
|
203
|
+
`,
|
|
204
|
+
'src/app/api.service.ts': `
|
|
205
|
+
import { craftService } from '@craft-ng/core';
|
|
206
|
+
|
|
207
|
+
export const { injectApiService } = craftService(
|
|
208
|
+
{ name: 'ApiService', scope: 'global' },
|
|
209
|
+
() => ({
|
|
210
|
+
getItemById: async (userId: string) => ({ id: userId }),
|
|
211
|
+
}),
|
|
212
|
+
);
|
|
213
|
+
`,
|
|
214
|
+
'src/app/demo.ts': `
|
|
215
|
+
import { Component, input } from '@angular/core';
|
|
216
|
+
import { Router } from '@angular/router';
|
|
217
|
+
import { injectApiService } from './api.service';
|
|
218
|
+
import { toCraftService } from '@craft-ng/core';
|
|
219
|
+
|
|
220
|
+
const { injectRouter } = toCraftService({
|
|
221
|
+
name: 'Router',
|
|
222
|
+
scope: 'global',
|
|
223
|
+
token: Router,
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
@Component({
|
|
227
|
+
standalone: true,
|
|
228
|
+
template: '',
|
|
229
|
+
})
|
|
230
|
+
export class DemoComponent {
|
|
231
|
+
readonly userId = input<string>();
|
|
232
|
+
private readonly apiService = injectApiService();
|
|
233
|
+
private readonly router = injectRouter(undefined, ({ navigate }) => ({
|
|
234
|
+
navigate,
|
|
235
|
+
}));
|
|
236
|
+
}
|
|
237
|
+
`,
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
const sourceFile = getFixtureSourceFile(project, 'src/app/demo.ts');
|
|
241
|
+
transformSourceFile(sourceFile);
|
|
242
|
+
const output = sourceFile.getFullText();
|
|
243
|
+
|
|
244
|
+
expect(output).toContain(
|
|
245
|
+
'ApiService: GetInjectedServiceDependencies<typeof injectApiService> & {',
|
|
246
|
+
);
|
|
247
|
+
expect(output).toContain('usesWholeService: true;');
|
|
248
|
+
expect(output).toContain(
|
|
249
|
+
'Router: GetInjectedServiceDependencies<typeof injectRouter> & {',
|
|
250
|
+
);
|
|
251
|
+
expect(output).toContain(
|
|
252
|
+
`navigate: GetServiceOutput<typeof injectRouter>["navigate"];`,
|
|
253
|
+
);
|
|
254
|
+
expect(output).toContain('missingProvider: {};');
|
|
255
|
+
});
|
|
181
256
|
});
|
|
182
257
|
|
|
183
258
|
async function createProjectFixture(
|
|
@@ -100,12 +100,39 @@ type ProvidedDependencyExtractionResult = {
|
|
|
100
100
|
warnings: string[];
|
|
101
101
|
};
|
|
102
102
|
|
|
103
|
+
type InjectedDependencyDescriptor = {
|
|
104
|
+
dependencyText: string;
|
|
105
|
+
entry: GeneratedDependencyEntry;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
type InjectCallDependencyExtractionResult = DependencyExtractionResult & {
|
|
109
|
+
generatedDependencies: InjectedDependencyDescriptor[];
|
|
110
|
+
};
|
|
111
|
+
|
|
103
112
|
type DependencyReferenceResolution = {
|
|
104
113
|
kind: 'class' | 'enum' | 'function' | 'variable' | 'namespace' | 'unknown';
|
|
105
114
|
classDeclaration?: ClassDeclaration;
|
|
106
115
|
moduleSpecifier?: string;
|
|
107
116
|
};
|
|
108
117
|
|
|
118
|
+
type TrackedHelperResolution = {
|
|
119
|
+
serviceName: string;
|
|
120
|
+
scope: string;
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
type HelperExposureBinding = {
|
|
124
|
+
localName: string;
|
|
125
|
+
sourceKey: string;
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
type HelperExposureTracking = {
|
|
129
|
+
usedProperties: string[];
|
|
130
|
+
exposedProperties: Array<{
|
|
131
|
+
exposedKey: string;
|
|
132
|
+
sourceKey: string;
|
|
133
|
+
}>;
|
|
134
|
+
};
|
|
135
|
+
|
|
109
136
|
type NormalizedOptions = Required<AngularBrandCodemodOptions>;
|
|
110
137
|
|
|
111
138
|
type InjectDecoratorTokenResult =
|
|
@@ -320,7 +347,13 @@ export function analyzeSourceFileDependencies(
|
|
|
320
347
|
result.generatedDependencyGroups = createGeneratedDependencyGroups(
|
|
321
348
|
sourceFile,
|
|
322
349
|
result.dependencyGroups.importDeps,
|
|
323
|
-
|
|
350
|
+
[
|
|
351
|
+
...constructorDeps.dependencies.map((dependencyText) => ({
|
|
352
|
+
dependencyText,
|
|
353
|
+
entry: createGeneratedDependencyEntry(sourceFile, dependencyText, 'inject'),
|
|
354
|
+
})),
|
|
355
|
+
...injectCallDeps.generatedDependencies,
|
|
356
|
+
],
|
|
324
357
|
providedDeps.entries,
|
|
325
358
|
);
|
|
326
359
|
|
|
@@ -485,9 +518,11 @@ export function extractConstructorDeps(
|
|
|
485
518
|
|
|
486
519
|
export function extractInjectCallDeps(
|
|
487
520
|
classDeclaration: ClassDeclaration,
|
|
488
|
-
):
|
|
521
|
+
): InjectCallDependencyExtractionResult {
|
|
489
522
|
const warnings: string[] = [];
|
|
490
523
|
const dependencies: string[] = [];
|
|
524
|
+
const generatedDependencies: InjectedDependencyDescriptor[] = [];
|
|
525
|
+
const sourceFile = classDeclaration.getSourceFile();
|
|
491
526
|
|
|
492
527
|
for (const callExpression of classDeclaration.getDescendantsOfKind(
|
|
493
528
|
SyntaxKind.CallExpression,
|
|
@@ -511,9 +546,25 @@ export function extractInjectCallDeps(
|
|
|
511
546
|
}
|
|
512
547
|
|
|
513
548
|
dependencies.push(dependency);
|
|
549
|
+
generatedDependencies.push({
|
|
550
|
+
dependencyText: dependency,
|
|
551
|
+
entry:
|
|
552
|
+
injectMethodName === 'inject'
|
|
553
|
+
? createGeneratedDependencyEntry(sourceFile, dependency, 'inject')
|
|
554
|
+
: createGeneratedInjectHelperDependencyEntry(
|
|
555
|
+
sourceFile,
|
|
556
|
+
callExpression,
|
|
557
|
+
expression,
|
|
558
|
+
dependency,
|
|
559
|
+
),
|
|
560
|
+
});
|
|
514
561
|
}
|
|
515
562
|
|
|
516
|
-
return {
|
|
563
|
+
return {
|
|
564
|
+
dependencies: mergeDeps(dependencies),
|
|
565
|
+
warnings,
|
|
566
|
+
generatedDependencies,
|
|
567
|
+
};
|
|
517
568
|
}
|
|
518
569
|
|
|
519
570
|
export function mergeDeps(...dependencyGroups: readonly string[][]): string[] {
|
|
@@ -557,30 +608,36 @@ function getGeneratedDepsTypeName(className: string): string {
|
|
|
557
608
|
function createGeneratedDependencyGroups(
|
|
558
609
|
sourceFile: SourceFile,
|
|
559
610
|
importDependencies: string[],
|
|
560
|
-
injectedDependencies:
|
|
611
|
+
injectedDependencies: InjectedDependencyDescriptor[],
|
|
561
612
|
providedEntries: GeneratedDependencyEntry[],
|
|
562
613
|
): GeneratedDependencyGroups {
|
|
563
614
|
const deps = mergeGeneratedDependencyEntries(
|
|
564
615
|
importDependencies.map((dependency) =>
|
|
565
616
|
createGeneratedDependencyEntry(sourceFile, dependency, 'import'),
|
|
566
617
|
),
|
|
567
|
-
injectedDependencies.map((dependency) =>
|
|
568
|
-
createGeneratedDependencyEntry(sourceFile, dependency, 'inject'),
|
|
569
|
-
),
|
|
618
|
+
injectedDependencies.map((dependency) => dependency.entry),
|
|
570
619
|
);
|
|
571
620
|
const provided = mergeGeneratedDependencyEntries(providedEntries);
|
|
572
621
|
const providedKeys = new Set(provided.map((entry) => entry.key));
|
|
622
|
+
const injectedEntriesByKey = new Map(
|
|
623
|
+
injectedDependencies.map((dependency) => [dependency.entry.key, dependency.entry]),
|
|
624
|
+
);
|
|
573
625
|
const missingProvider = mergeGeneratedDependencyEntries(
|
|
574
626
|
injectedDependencies
|
|
575
627
|
.filter((dependency) => {
|
|
576
|
-
const dependencyKey =
|
|
628
|
+
const dependencyKey = dependency.entry.key;
|
|
577
629
|
return (
|
|
578
630
|
!providedKeys.has(dependencyKey) &&
|
|
579
|
-
!
|
|
631
|
+
!isDependencyProvidedElsewhere(sourceFile, dependency.dependencyText)
|
|
580
632
|
);
|
|
581
633
|
})
|
|
582
634
|
.map((dependency) =>
|
|
583
|
-
|
|
635
|
+
injectedEntriesByKey.get(dependency.entry.key) ??
|
|
636
|
+
createGeneratedDependencyEntry(
|
|
637
|
+
sourceFile,
|
|
638
|
+
dependency.dependencyText,
|
|
639
|
+
'inject',
|
|
640
|
+
),
|
|
584
641
|
),
|
|
585
642
|
);
|
|
586
643
|
|
|
@@ -640,6 +697,342 @@ function createGeneratedDependencyEntry(
|
|
|
640
697
|
};
|
|
641
698
|
}
|
|
642
699
|
|
|
700
|
+
function createGeneratedInjectHelperDependencyEntry(
|
|
701
|
+
sourceFile: SourceFile,
|
|
702
|
+
callExpression: import('ts-morph').CallExpression,
|
|
703
|
+
expression: Node,
|
|
704
|
+
dependencyText: string,
|
|
705
|
+
): GeneratedDependencyEntry {
|
|
706
|
+
const trackedHelper = resolveTrackedInjectHelper(expression);
|
|
707
|
+
if (!trackedHelper) {
|
|
708
|
+
return createGeneratedDependencyEntry(sourceFile, dependencyText, 'inject');
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
const exposureTracking = extractHelperExposureTracking(callExpression);
|
|
712
|
+
|
|
713
|
+
return {
|
|
714
|
+
key: trackedHelper.serviceName,
|
|
715
|
+
typeText: createTrackedInjectHelperTypeText(
|
|
716
|
+
dependencyText,
|
|
717
|
+
exposureTracking,
|
|
718
|
+
),
|
|
719
|
+
};
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
function createTrackedInjectHelperTypeText(
|
|
723
|
+
dependencyText: string,
|
|
724
|
+
exposureTracking: HelperExposureTracking | undefined,
|
|
725
|
+
): string {
|
|
726
|
+
const baseType = `GetInjectedServiceDependencies<typeof ${dependencyText}>`;
|
|
727
|
+
if (!exposureTracking) {
|
|
728
|
+
return [baseType + ' & {', ' usesWholeService: true;', '}'].join('\n');
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
return [
|
|
732
|
+
`${baseType} & {`,
|
|
733
|
+
` derivedPropertiesUsed: ${formatHelperExposurePropertiesType(
|
|
734
|
+
dependencyText,
|
|
735
|
+
exposureTracking.usedProperties.map((sourceKey) => ({
|
|
736
|
+
propertyKey: sourceKey,
|
|
737
|
+
sourceKey,
|
|
738
|
+
})),
|
|
739
|
+
)};`,
|
|
740
|
+
` derivedPropertiesExposed: ${formatHelperExposurePropertiesType(
|
|
741
|
+
dependencyText,
|
|
742
|
+
exposureTracking.exposedProperties.map(
|
|
743
|
+
({ exposedKey, sourceKey }) => ({
|
|
744
|
+
propertyKey: exposedKey,
|
|
745
|
+
sourceKey,
|
|
746
|
+
}),
|
|
747
|
+
),
|
|
748
|
+
)};`,
|
|
749
|
+
'}',
|
|
750
|
+
].join('\n');
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
function formatHelperExposurePropertiesType(
|
|
754
|
+
dependencyText: string,
|
|
755
|
+
properties: Array<{ propertyKey: string; sourceKey: string }>,
|
|
756
|
+
): string {
|
|
757
|
+
if (properties.length === 0) {
|
|
758
|
+
return '{}';
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
return [
|
|
762
|
+
'{',
|
|
763
|
+
...properties.map(
|
|
764
|
+
({ propertyKey, sourceKey }) =>
|
|
765
|
+
` ${formatObjectKey(propertyKey)}: ${createTrackedHelperOutputTypeText(
|
|
766
|
+
dependencyText,
|
|
767
|
+
sourceKey,
|
|
768
|
+
)};`,
|
|
769
|
+
),
|
|
770
|
+
' }',
|
|
771
|
+
].join('\n');
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
function createTrackedHelperOutputTypeText(
|
|
775
|
+
dependencyText: string,
|
|
776
|
+
sourceKey: string,
|
|
777
|
+
): string {
|
|
778
|
+
if (sourceKey === '$self') {
|
|
779
|
+
return `GetServiceOutput<typeof ${dependencyText}>`;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
return `GetServiceOutput<typeof ${dependencyText}>[${JSON.stringify(sourceKey)}]`;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
function resolveTrackedInjectHelper(
|
|
786
|
+
expression: Node,
|
|
787
|
+
): TrackedHelperResolution | undefined {
|
|
788
|
+
const symbol = expression.getSymbol() ?? expression.getType().getSymbol();
|
|
789
|
+
const declarations =
|
|
790
|
+
symbol?.getAliasedSymbol()?.getDeclarations() ?? symbol?.getDeclarations() ?? [];
|
|
791
|
+
|
|
792
|
+
for (const declaration of declarations) {
|
|
793
|
+
const helper = resolveTrackedInjectHelperFromDeclaration(declaration);
|
|
794
|
+
if (helper) {
|
|
795
|
+
return helper;
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
return undefined;
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
function resolveTrackedInjectHelperFromDeclaration(
|
|
803
|
+
declaration: Node,
|
|
804
|
+
): TrackedHelperResolution | undefined {
|
|
805
|
+
if (!Node.isBindingElement(declaration)) {
|
|
806
|
+
return undefined;
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
const objectBindingPattern = declaration.getFirstAncestorByKind(
|
|
810
|
+
SyntaxKind.ObjectBindingPattern,
|
|
811
|
+
);
|
|
812
|
+
const variableDeclaration =
|
|
813
|
+
objectBindingPattern?.getFirstAncestorByKind(SyntaxKind.VariableDeclaration);
|
|
814
|
+
const initializer = variableDeclaration?.getInitializer();
|
|
815
|
+
if (!Node.isCallExpression(initializer) || !isServiceFactoryCall(initializer)) {
|
|
816
|
+
return undefined;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
const [optionsArgument] = initializer.getArguments();
|
|
820
|
+
if (!Node.isObjectLiteralExpression(optionsArgument)) {
|
|
821
|
+
return undefined;
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
const nameInitializer = getObjectPropertyAssignment(
|
|
825
|
+
optionsArgument,
|
|
826
|
+
'name',
|
|
827
|
+
)?.getInitializer();
|
|
828
|
+
const scopeInitializer = getObjectPropertyAssignment(
|
|
829
|
+
optionsArgument,
|
|
830
|
+
'scope',
|
|
831
|
+
)?.getInitializer();
|
|
832
|
+
|
|
833
|
+
if (
|
|
834
|
+
!Node.isStringLiteral(nameInitializer) ||
|
|
835
|
+
!Node.isStringLiteral(scopeInitializer)
|
|
836
|
+
) {
|
|
837
|
+
return undefined;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
return {
|
|
841
|
+
serviceName: nameInitializer.getLiteralText(),
|
|
842
|
+
scope: scopeInitializer.getLiteralText(),
|
|
843
|
+
};
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
function isServiceFactoryCall(
|
|
847
|
+
callExpression: import('ts-morph').CallExpression,
|
|
848
|
+
): boolean {
|
|
849
|
+
const expression = callExpression.getExpression();
|
|
850
|
+
if (Node.isIdentifier(expression)) {
|
|
851
|
+
return expression.getText() === 'craftService' || expression.getText() === 'toCraftService';
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
if (Node.isPropertyAccessExpression(expression)) {
|
|
855
|
+
const methodName = expression.getName();
|
|
856
|
+
return methodName === 'craftService' || methodName === 'toCraftService';
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
return false;
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
function extractHelperExposureTracking(
|
|
863
|
+
callExpression: import('ts-morph').CallExpression,
|
|
864
|
+
): HelperExposureTracking | undefined {
|
|
865
|
+
const exposeArgument = [...callExpression.getArguments()]
|
|
866
|
+
.reverse()
|
|
867
|
+
.find(
|
|
868
|
+
(argument) =>
|
|
869
|
+
Node.isArrowFunction(argument) || Node.isFunctionExpression(argument),
|
|
870
|
+
);
|
|
871
|
+
|
|
872
|
+
if (
|
|
873
|
+
!exposeArgument ||
|
|
874
|
+
(!Node.isArrowFunction(exposeArgument) &&
|
|
875
|
+
!Node.isFunctionExpression(exposeArgument))
|
|
876
|
+
) {
|
|
877
|
+
return undefined;
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
const parameter = exposeArgument.getParameters()[0];
|
|
881
|
+
const nameNode = parameter?.getNameNode();
|
|
882
|
+
if (!nameNode || !Node.isObjectBindingPattern(nameNode)) {
|
|
883
|
+
return undefined;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
const bindings = extractHelperExposureBindings(nameNode);
|
|
887
|
+
if (bindings.length === 0) {
|
|
888
|
+
return undefined;
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
const returnObjectLiteral = getExposureReturnObjectLiteral(exposeArgument);
|
|
892
|
+
if (!returnObjectLiteral) {
|
|
893
|
+
return undefined;
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
const exposedProperties = extractHelperExposedProperties(
|
|
897
|
+
returnObjectLiteral,
|
|
898
|
+
bindings,
|
|
899
|
+
);
|
|
900
|
+
const usedProperties = mergeDeps(
|
|
901
|
+
exposedProperties.map(({ sourceKey }) => sourceKey),
|
|
902
|
+
extractHelperYieldedProperties(exposeArgument, bindings),
|
|
903
|
+
);
|
|
904
|
+
|
|
905
|
+
return {
|
|
906
|
+
usedProperties,
|
|
907
|
+
exposedProperties,
|
|
908
|
+
};
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
function extractHelperExposureBindings(
|
|
912
|
+
bindingPattern: import('ts-morph').ObjectBindingPattern,
|
|
913
|
+
): HelperExposureBinding[] {
|
|
914
|
+
const bindings: HelperExposureBinding[] = [];
|
|
915
|
+
|
|
916
|
+
for (const element of bindingPattern.getElements()) {
|
|
917
|
+
const nameNode = element.getNameNode();
|
|
918
|
+
if (!Node.isIdentifier(nameNode)) {
|
|
919
|
+
continue;
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
const propertyNameNode = element.getPropertyNameNode();
|
|
923
|
+
const sourceKey =
|
|
924
|
+
getStaticPropertyName(propertyNameNode ?? nameNode) ?? nameNode.getText();
|
|
925
|
+
|
|
926
|
+
bindings.push({
|
|
927
|
+
localName: nameNode.getText(),
|
|
928
|
+
sourceKey,
|
|
929
|
+
});
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
return bindings;
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
function getExposureReturnObjectLiteral(
|
|
936
|
+
exposeArgument: import('ts-morph').ArrowFunction | import('ts-morph').FunctionExpression,
|
|
937
|
+
): ObjectLiteralExpression | undefined {
|
|
938
|
+
const body = exposeArgument.getBody();
|
|
939
|
+
if (Node.isObjectLiteralExpression(body)) {
|
|
940
|
+
return body;
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
if (Node.isParenthesizedExpression(body)) {
|
|
944
|
+
const expression = body.getExpression();
|
|
945
|
+
return Node.isObjectLiteralExpression(expression) ? expression : undefined;
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
if (!Node.isBlock(body)) {
|
|
949
|
+
return undefined;
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
const returnStatement = [...body.getDescendantsOfKind(SyntaxKind.ReturnStatement)]
|
|
953
|
+
.reverse()
|
|
954
|
+
.find((statement) => Node.isObjectLiteralExpression(statement.getExpression()));
|
|
955
|
+
|
|
956
|
+
const expression = returnStatement?.getExpression();
|
|
957
|
+
return Node.isObjectLiteralExpression(expression) ? expression : undefined;
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
function extractHelperExposedProperties(
|
|
961
|
+
objectLiteral: ObjectLiteralExpression,
|
|
962
|
+
bindings: HelperExposureBinding[],
|
|
963
|
+
): Array<{ exposedKey: string; sourceKey: string }> {
|
|
964
|
+
const bindingMap = new Map(
|
|
965
|
+
bindings.map((binding) => [binding.localName, binding.sourceKey]),
|
|
966
|
+
);
|
|
967
|
+
const exposedProperties: Array<{ exposedKey: string; sourceKey: string }> = [];
|
|
968
|
+
|
|
969
|
+
for (const property of objectLiteral.getProperties()) {
|
|
970
|
+
if (Node.isShorthandPropertyAssignment(property)) {
|
|
971
|
+
const sourceKey = bindingMap.get(property.getName());
|
|
972
|
+
if (sourceKey) {
|
|
973
|
+
exposedProperties.push({
|
|
974
|
+
exposedKey: property.getName(),
|
|
975
|
+
sourceKey,
|
|
976
|
+
});
|
|
977
|
+
}
|
|
978
|
+
continue;
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
if (!Node.isPropertyAssignment(property)) {
|
|
982
|
+
continue;
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
const exposedKey = getStaticPropertyName(property.getNameNode());
|
|
986
|
+
const initializer = property.getInitializer();
|
|
987
|
+
if (!exposedKey || !Node.isIdentifier(initializer)) {
|
|
988
|
+
continue;
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
const sourceKey = bindingMap.get(initializer.getText());
|
|
992
|
+
if (!sourceKey) {
|
|
993
|
+
continue;
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
exposedProperties.push({
|
|
997
|
+
exposedKey,
|
|
998
|
+
sourceKey,
|
|
999
|
+
});
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
return exposedProperties;
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
function extractHelperYieldedProperties(
|
|
1006
|
+
exposeArgument: import('ts-morph').ArrowFunction | import('ts-morph').FunctionExpression,
|
|
1007
|
+
bindings: HelperExposureBinding[],
|
|
1008
|
+
): string[] {
|
|
1009
|
+
const bindingMap = new Map(
|
|
1010
|
+
bindings.map((binding) => [binding.localName, binding.sourceKey]),
|
|
1011
|
+
);
|
|
1012
|
+
const yieldedProperties: string[] = [];
|
|
1013
|
+
|
|
1014
|
+
for (const yieldExpression of exposeArgument.getDescendantsOfKind(
|
|
1015
|
+
SyntaxKind.YieldExpression,
|
|
1016
|
+
)) {
|
|
1017
|
+
const expression = yieldExpression.getExpression();
|
|
1018
|
+
if (!Node.isCallExpression(expression)) {
|
|
1019
|
+
continue;
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
const target = expression.getExpression();
|
|
1023
|
+
if (!Node.isIdentifier(target)) {
|
|
1024
|
+
continue;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
const sourceKey = bindingMap.get(target.getText());
|
|
1028
|
+
if (sourceKey) {
|
|
1029
|
+
yieldedProperties.push(sourceKey);
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
return yieldedProperties;
|
|
1034
|
+
}
|
|
1035
|
+
|
|
643
1036
|
function createGeneratedDependencyKey(dependencyText: string): string {
|
|
644
1037
|
const lastSegment = dependencyText.split('.').pop() ?? dependencyText;
|
|
645
1038
|
const helperMatch = /^(inject|provide)([A-Z].*)$/.exec(lastSegment);
|
|
@@ -782,13 +1175,21 @@ function formatGeneratedDependencyObject(
|
|
|
782
1175
|
|
|
783
1176
|
return [
|
|
784
1177
|
'{',
|
|
785
|
-
...entries.map(
|
|
786
|
-
(entry) => ` ${formatObjectKey(entry.key)}: ${entry.typeText};`,
|
|
787
|
-
),
|
|
1178
|
+
...entries.map((entry) => formatGeneratedDependencyEntry(entry)),
|
|
788
1179
|
' }',
|
|
789
1180
|
].join('\n');
|
|
790
1181
|
}
|
|
791
1182
|
|
|
1183
|
+
function formatGeneratedDependencyEntry(entry: GeneratedDependencyEntry): string {
|
|
1184
|
+
const typeLines = entry.typeText.split('\n');
|
|
1185
|
+
const lines = [
|
|
1186
|
+
` ${formatObjectKey(entry.key)}: ${typeLines[0]}`,
|
|
1187
|
+
...typeLines.slice(1).map((line) => ` ${line}`),
|
|
1188
|
+
];
|
|
1189
|
+
lines[lines.length - 1] += ';';
|
|
1190
|
+
return lines.join('\n');
|
|
1191
|
+
}
|
|
1192
|
+
|
|
792
1193
|
function formatObjectKey(key: string): string {
|
|
793
1194
|
return /^[$A-Z_][0-9A-Z_$]*$/i.test(key) ? key : `'${key}'`;
|
|
794
1195
|
}
|
|
@@ -927,7 +1328,11 @@ export function ensureHelperImports(
|
|
|
927
1328
|
sourceFile: SourceFile,
|
|
928
1329
|
helperImportPath: string,
|
|
929
1330
|
): void {
|
|
930
|
-
const missingImports = [
|
|
1331
|
+
const missingImports = [
|
|
1332
|
+
'GetDeps',
|
|
1333
|
+
'GetInjectedServiceDependencies',
|
|
1334
|
+
'GetServiceOutput',
|
|
1335
|
+
].filter(
|
|
931
1336
|
(importName) =>
|
|
932
1337
|
!hasLocalNamedImport(sourceFile, helperImportPath, importName),
|
|
933
1338
|
);
|
|
@@ -1875,6 +2280,66 @@ function isProvidedInInjectableTree(
|
|
|
1875
2280
|
);
|
|
1876
2281
|
}
|
|
1877
2282
|
|
|
2283
|
+
function isDependencyProvidedElsewhere(
|
|
2284
|
+
sourceFile: SourceFile,
|
|
2285
|
+
dependencyText: string,
|
|
2286
|
+
): boolean {
|
|
2287
|
+
const trackedHelper = resolveTrackedInjectHelperByName(sourceFile, dependencyText);
|
|
2288
|
+
if (trackedHelper) {
|
|
2289
|
+
return trackedHelper.scope === 'global' || trackedHelper.scope === 'function';
|
|
2290
|
+
}
|
|
2291
|
+
|
|
2292
|
+
return isProvidedInInjectableTree(sourceFile, dependencyText);
|
|
2293
|
+
}
|
|
2294
|
+
|
|
2295
|
+
function resolveTrackedInjectHelperByName(
|
|
2296
|
+
sourceFile: SourceFile,
|
|
2297
|
+
dependencyText: string,
|
|
2298
|
+
): TrackedHelperResolution | undefined {
|
|
2299
|
+
const [rootIdentifier] = dependencyText.split('.');
|
|
2300
|
+
if (!rootIdentifier) {
|
|
2301
|
+
return undefined;
|
|
2302
|
+
}
|
|
2303
|
+
|
|
2304
|
+
for (const declaration of resolveDependencyIdentifierDeclarations(
|
|
2305
|
+
sourceFile,
|
|
2306
|
+
rootIdentifier,
|
|
2307
|
+
)) {
|
|
2308
|
+
const helper = resolveTrackedInjectHelperFromDeclaration(declaration);
|
|
2309
|
+
if (helper) {
|
|
2310
|
+
return helper;
|
|
2311
|
+
}
|
|
2312
|
+
}
|
|
2313
|
+
|
|
2314
|
+
return undefined;
|
|
2315
|
+
}
|
|
2316
|
+
|
|
2317
|
+
function resolveDependencyIdentifierDeclarations(
|
|
2318
|
+
sourceFile: SourceFile,
|
|
2319
|
+
rootIdentifier: string,
|
|
2320
|
+
): Node[] {
|
|
2321
|
+
for (const importDeclaration of sourceFile.getImportDeclarations()) {
|
|
2322
|
+
const namedImport = importDeclaration.getNamedImports().find((specifier) => {
|
|
2323
|
+
const localName =
|
|
2324
|
+
specifier.getAliasNode()?.getText() ?? specifier.getNameNode().getText();
|
|
2325
|
+
return localName === rootIdentifier;
|
|
2326
|
+
});
|
|
2327
|
+
|
|
2328
|
+
if (!namedImport) {
|
|
2329
|
+
continue;
|
|
2330
|
+
}
|
|
2331
|
+
|
|
2332
|
+
const identifier = namedImport.getAliasNode() ?? namedImport.getNameNode();
|
|
2333
|
+
const symbol = identifier.getSymbol() ?? identifier.getType().getSymbol();
|
|
2334
|
+
const aliasedSymbol = symbol?.getAliasedSymbol() ?? symbol;
|
|
2335
|
+
return aliasedSymbol?.getDeclarations() ?? [namedImport];
|
|
2336
|
+
}
|
|
2337
|
+
|
|
2338
|
+
return sourceFile
|
|
2339
|
+
.getDescendantsOfKind(SyntaxKind.BindingElement)
|
|
2340
|
+
.filter((bindingElement) => bindingElement.getName() === rootIdentifier);
|
|
2341
|
+
}
|
|
2342
|
+
|
|
1878
2343
|
function getDependencyTextFromTypeNode(typeNode: TypeNode): string | undefined {
|
|
1879
2344
|
if (isPrimitiveTypeNode(typeNode)) {
|
|
1880
2345
|
return undefined;
|
|
@@ -2124,7 +2589,11 @@ function getHelperImportSafety(
|
|
|
2124
2589
|
sourceFile: SourceFile,
|
|
2125
2590
|
helperImportPath: string,
|
|
2126
2591
|
): { safe: true; warnings: [] } | { safe: false; warnings: string[] } {
|
|
2127
|
-
const warnings = [
|
|
2592
|
+
const warnings = [
|
|
2593
|
+
'GetDeps',
|
|
2594
|
+
'GetInjectedServiceDependencies',
|
|
2595
|
+
'GetServiceOutput',
|
|
2596
|
+
]
|
|
2128
2597
|
.filter((helperName) =>
|
|
2129
2598
|
hasConflictingTopLevelBinding(sourceFile, helperImportPath, helperName),
|
|
2130
2599
|
)
|