@craft-ng/dev-tools 0.5.0-beta.0 → 0.5.0-beta.2

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.
@@ -111,6 +111,7 @@ type GeneratedDependencyGroupAugmentation = {
111
111
  deps: GeneratedDependencyDescriptor[];
112
112
  missingProvider: GeneratedDependencyDescriptor[];
113
113
  legacyInjectedDependencies: GeneratedDependencyDescriptor[];
114
+ suppressedImportDependencyTexts: Set<string>;
114
115
  };
115
116
 
116
117
  export type DependencyAnalysisResult = Omit<TransformResult, 'changed'> & {
@@ -290,18 +291,39 @@ const DEFAULT_ANGULAR_BRAND_CONFIG = defineAngularBrandConfig({
290
291
  {
291
292
  match: {
292
293
  module: '@craft-ng/core',
293
- symbols: ['CraftField'],
294
+ symbols: ['CraftFieldDirective'],
294
295
  metadata: ['imports'],
295
296
  },
296
297
  deps: [
297
298
  {
298
- key: 'CraftField',
299
- symbol: 'CraftField',
300
- typeText: 'CraftField<unknown>',
299
+ key: 'CraftFieldDirective',
300
+ symbol: 'CraftFieldDirective',
301
+ typeText: 'CraftFieldDirective<unknown>',
301
302
  module: '@craft-ng/core',
302
303
  },
303
304
  ],
304
305
  },
306
+ {
307
+ match: {
308
+ module: '@craft-ng/core',
309
+ symbols: ['CraftRouterLink'],
310
+ metadata: ['imports'],
311
+ },
312
+ deps: [
313
+ {
314
+ key: 'CraftRouterLink',
315
+ symbol: 'CraftRouterLink',
316
+ module: '@craft-ng/core',
317
+ },
318
+ ],
319
+ missingProvider: [
320
+ {
321
+ key: 'Router',
322
+ symbol: 'Router',
323
+ module: '@angular/router',
324
+ },
325
+ ],
326
+ },
305
327
  ],
306
328
  });
307
329
  const angularBrandConfigCache = new Map<string, AngularBrandConfig>();
@@ -1244,6 +1266,7 @@ function emptyGeneratedDependencyGroupAugmentation(): GeneratedDependencyGroupAu
1244
1266
  deps: [],
1245
1267
  missingProvider: [],
1246
1268
  legacyInjectedDependencies: [],
1269
+ suppressedImportDependencyTexts: new Set(),
1247
1270
  };
1248
1271
  }
1249
1272
 
@@ -1264,9 +1287,14 @@ function createGeneratedDependencyGroups(
1264
1287
  createGeneratedDependencyEntry(sourceFile, dependency, 'inject'),
1265
1288
  );
1266
1289
  const deps = mergeGeneratedDependencyEntries(
1267
- importDependencies.map((dependency) =>
1268
- createGeneratedDependencyEntry(sourceFile, dependency, 'import'),
1269
- ),
1290
+ importDependencies
1291
+ .filter(
1292
+ (dependency) =>
1293
+ !augmentation.suppressedImportDependencyTexts.has(dependency),
1294
+ )
1295
+ .map((dependency) =>
1296
+ createGeneratedDependencyEntry(sourceFile, dependency, 'import'),
1297
+ ),
1270
1298
  constructorEntries,
1271
1299
  augmentation.deps.map((dependency) => dependency.entry),
1272
1300
  );
@@ -1309,13 +1337,13 @@ function createGeneratedDependencyGroupAugmentation(
1309
1337
  const deps: GeneratedDependencyDescriptor[] = [];
1310
1338
  const missingProvider: GeneratedDependencyDescriptor[] = [];
1311
1339
  const legacyInjectedDependencies: GeneratedDependencyDescriptor[] = [];
1340
+ const suppressedImportDependencyTexts = new Set<string>();
1312
1341
 
1313
1342
  for (const rule of config.importAugmentations) {
1314
- if (
1315
- !metadataOccurrences.some((occurrence) =>
1316
- ruleMatchesMetadataOccurrence(rule, occurrence),
1317
- )
1318
- ) {
1343
+ const matchingOccurrences = metadataOccurrences.filter((occurrence) =>
1344
+ ruleMatchesMetadataOccurrence(rule, occurrence),
1345
+ );
1346
+ if (matchingOccurrences.length === 0) {
1319
1347
  continue;
1320
1348
  }
1321
1349
 
@@ -1337,12 +1365,23 @@ function createGeneratedDependencyGroupAugmentation(
1337
1365
  deps.push(...generatedDeps);
1338
1366
  missingProvider.push(...generatedMissingProviders);
1339
1367
  legacyInjectedDependencies.push(...generatedMissingProviders);
1368
+
1369
+ const ruleEntryKeys = new Set(rule.deps.map((entry) => entry.key));
1370
+ for (const occurrence of matchingOccurrences) {
1371
+ if (
1372
+ occurrence.metadataContext === 'imports' &&
1373
+ ruleEntryKeys.has(occurrence.symbolName)
1374
+ ) {
1375
+ suppressedImportDependencyTexts.add(occurrence.dependencyText);
1376
+ }
1377
+ }
1340
1378
  }
1341
1379
 
1342
1380
  return {
1343
1381
  deps,
1344
1382
  missingProvider,
1345
1383
  legacyInjectedDependencies,
1384
+ suppressedImportDependencyTexts,
1346
1385
  };
1347
1386
  }
1348
1387