@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.
- package/package.json +1 -1
- package/src/eslint-rules/brand-angular-deps-match.cjs +11 -0
- package/src/eslint-rules/craft-computed-name-match.cjs +125 -0
- package/src/eslint-rules/craft-method-name-match.cjs +166 -0
- package/src/eslint-rules/index.cjs +10 -0
- package/src/eslint-rules/prefer-craft-computed.cjs +105 -0
- package/src/eslint-rules/provide-host-name-match-component.cjs +455 -0
- package/src/eslint-rules/require-component-monitoring.cjs +212 -0
- package/src/scripts/angular-brand-codemod.js +40 -6
- package/src/scripts/angular-brand-codemod.js.map +1 -1
- package/src/scripts/angular-brand-codemod.spec.ts +76 -0
- package/src/scripts/angular-brand-codemod.ts +51 -12
|
@@ -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: ['
|
|
294
|
+
symbols: ['CraftFieldDirective'],
|
|
294
295
|
metadata: ['imports'],
|
|
295
296
|
},
|
|
296
297
|
deps: [
|
|
297
298
|
{
|
|
298
|
-
key: '
|
|
299
|
-
symbol: '
|
|
300
|
-
typeText: '
|
|
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
|
|
1268
|
-
|
|
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
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
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
|
|