Skip to content

Commit cf98925

Browse files
committed
refactor(tslint): optimize failure handling in convertRule function
1 parent df3c4ed commit cf98925

1 file changed

Lines changed: 7 additions & 12 deletions

File tree

packages/tslint/index.ts

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ export function convertRule<T extends Partial<TSLintRule> | TSLintRule>(
1414
disabledIntervals: [],
1515
}) as TSLint.IRule | TSLint.ITypedRule;
1616
return ({ sourceFile, languageService, report }) => {
17-
let lastFailure: TSLint.RuleFailure | undefined;
18-
const onAddFailure = (failure: TSLint.RuleFailure) => {
19-
if (lastFailure === failure) {
20-
return;
21-
}
22-
lastFailure = failure;
17+
const failures = 'applyWithProgram' in rule
18+
? rule.applyWithProgram(sourceFile, languageService.getProgram()!)
19+
: rule.apply(sourceFile);
20+
for (const failure of new Set(failures)) {
21+
onAddFailure(failure);
22+
}
23+
function onAddFailure(failure: TSLint.RuleFailure) {
2324
const reporter = report(
2425
failure.getFailure(),
2526
failure.getStartPosition().getPosition(),
@@ -52,11 +53,5 @@ export function convertRule<T extends Partial<TSLintRule> | TSLintRule>(
5253
}
5354
}
5455
};
55-
const failures = 'applyWithProgram' in rule
56-
? rule.applyWithProgram(sourceFile, languageService.getProgram()!)
57-
: rule.apply(sourceFile);
58-
for (const failure of failures) {
59-
onAddFailure(failure);
60-
}
6156
};
6257
}

0 commit comments

Comments
 (0)