Skip to content

Commit eb0d16b

Browse files
committed
Turn ignored logic around (for config hints)
1 parent ad99905 commit eb0d16b

File tree

2 files changed

+28
-30
lines changed

2 files changed

+28
-30
lines changed

packages/knip/src/DependencyDeputy.ts

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ export class DependencyDeputy {
6666
manifestPath,
6767
manifestStr,
6868
manifest,
69-
ignoreDependencies,
70-
ignoreBinaries,
71-
ignoreUnresolved,
69+
ignoreDependencies: id,
70+
ignoreBinaries: ib,
71+
ignoreUnresolved: iu,
7272
}: {
7373
name: string;
7474
cwd: string;
@@ -110,16 +110,20 @@ export class DependencyDeputy {
110110
this.setInstalledBinaries(name, installedBinaries);
111111
this.setHasTypesIncluded(name, hasTypesIncluded);
112112

113+
const ignoreDependencies = id.map(toRegexOrString);
114+
const ignoreBinaries = ib.map(toRegexOrString);
115+
const ignoreUnresolved = iu.map(toRegexOrString);
116+
113117
this._manifests.set(name, {
114118
workspaceDir: dir,
115119
manifestPath,
116120
manifestStr,
117-
ignoreDependencies: ignoreDependencies.map(toRegexOrString),
118-
ignoreBinaries: ignoreBinaries.map(toRegexOrString),
119-
ignoreUnresolved: ignoreUnresolved.map(toRegexOrString),
120-
usedIgnoreDependencies: new Set<string | RegExp>(),
121-
usedIgnoreBinaries: new Set<string | RegExp>(),
122-
usedIgnoreUnresolved: new Set<string | RegExp>(),
121+
ignoreDependencies,
122+
ignoreBinaries,
123+
ignoreUnresolved,
124+
unusedIgnoreDependencies: new Set(ignoreDependencies),
125+
unusedIgnoreBinaries: new Set(ignoreBinaries),
126+
unusedIgnoreUnresolved: new Set(ignoreUnresolved),
123127
dependencies,
124128
devDependencies,
125129
peerDependencies: new Set(peerDependencies),
@@ -347,15 +351,15 @@ export class DependencyDeputy {
347351
if (ignoreItem) {
348352
delete issueSet[issueKey];
349353
counters[type]--;
350-
manifest.usedIgnoreDependencies.add(ignoreItem);
354+
manifest.unusedIgnoreDependencies.delete(ignoreItem);
351355
} else if (issue.workspace !== ROOT_WORKSPACE_NAME) {
352356
const manifest = this.getWorkspaceManifest(ROOT_WORKSPACE_NAME);
353357
if (manifest) {
354358
const ignoreItem = findMatch(manifest.ignoreDependencies, packageName);
355359
if (ignoreItem) {
356360
delete issueSet[issueKey];
357361
counters[type]--;
358-
manifest.usedIgnoreDependencies.add(ignoreItem);
362+
manifest.unusedIgnoreDependencies.delete(ignoreItem);
359363
}
360364
}
361365
}
@@ -381,15 +385,15 @@ export class DependencyDeputy {
381385
if (ignoreItem) {
382386
delete issueSet[issueKey];
383387
counters[type]--;
384-
manifest.usedIgnoreBinaries.add(ignoreItem);
388+
manifest.unusedIgnoreBinaries.delete(ignoreItem);
385389
} else {
386390
const manifest = this.getWorkspaceManifest(ROOT_WORKSPACE_NAME);
387391
if (manifest) {
388392
const ignoreItem = findMatch(manifest.ignoreBinaries, issue.symbol);
389393
if (ignoreItem) {
390394
delete issueSet[issueKey];
391395
counters[type]--;
392-
manifest.usedIgnoreBinaries.add(ignoreItem);
396+
manifest.unusedIgnoreBinaries.delete(ignoreItem);
393397
}
394398
}
395399
}
@@ -409,15 +413,15 @@ export class DependencyDeputy {
409413
if (ignoreItem) {
410414
delete issueSet[issueKey];
411415
counters.unresolved--;
412-
manifest.usedIgnoreUnresolved.add(ignoreItem);
416+
manifest.unusedIgnoreUnresolved.delete(ignoreItem);
413417
} else {
414418
const manifest = this.getWorkspaceManifest(ROOT_WORKSPACE_NAME);
415419
if (manifest) {
416420
const ignoreItem = findMatch(manifest.ignoreUnresolved, issue.symbol);
417421
if (ignoreItem) {
418422
delete issueSet[issueKey];
419423
counters.unresolved--;
420-
manifest.usedIgnoreUnresolved.add(ignoreItem);
424+
manifest.unusedIgnoreUnresolved.delete(ignoreItem);
421425
}
422426
}
423427
}
@@ -440,22 +444,16 @@ export class DependencyDeputy {
440444
const configurationHints: ConfigurationHints = new Set();
441445

442446
for (const [workspaceName, manifest] of this._manifests.entries()) {
443-
for (const identifier of manifest.ignoreDependencies) {
444-
if (!manifest.usedIgnoreDependencies.has(identifier)) {
445-
configurationHints.add({ workspaceName, identifier, type: 'ignoreDependencies' });
446-
}
447+
for (const identifier of manifest.unusedIgnoreDependencies) {
448+
configurationHints.add({ workspaceName, identifier, type: 'ignoreDependencies' });
447449
}
448450

449-
for (const identifier of manifest.ignoreBinaries) {
450-
if (!manifest.usedIgnoreBinaries.has(identifier)) {
451-
configurationHints.add({ workspaceName, identifier, type: 'ignoreBinaries' });
452-
}
451+
for (const identifier of manifest.unusedIgnoreBinaries) {
452+
configurationHints.add({ workspaceName, identifier, type: 'ignoreBinaries' });
453453
}
454454

455-
for (const identifier of manifest.ignoreUnresolved) {
456-
if (!manifest.usedIgnoreUnresolved.has(identifier)) {
457-
configurationHints.add({ workspaceName, identifier, type: 'ignoreUnresolved' });
458-
}
455+
for (const identifier of manifest.unusedIgnoreUnresolved) {
456+
configurationHints.add({ workspaceName, identifier, type: 'ignoreUnresolved' });
459457
}
460458
}
461459

packages/knip/src/types/workspace.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ type WorkspaceManifest = {
1313
ignoreDependencies: (string | RegExp)[];
1414
ignoreBinaries: (string | RegExp)[];
1515
ignoreUnresolved: (string | RegExp)[];
16-
usedIgnoreDependencies: Set<string | RegExp>;
17-
usedIgnoreBinaries: Set<string | RegExp>;
18-
usedIgnoreUnresolved: Set<string | RegExp>;
16+
unusedIgnoreDependencies: Set<string | RegExp>;
17+
unusedIgnoreBinaries: Set<string | RegExp>;
18+
unusedIgnoreUnresolved: Set<string | RegExp>;
1919
};
2020

2121
export type WorkspaceManifests = Map<string, WorkspaceManifest>;

0 commit comments

Comments
 (0)