Skip to content

Commit 98792cd

Browse files
author
Josh Goldberg
authored
Added basic @typescript-eslint/triple-slash-reference merger (#420)
1 parent cc8bb85 commit 98792cd

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

src/rules/mergers.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ import { mergeNoCaller } from "./mergers/no-caller";
55
import { mergeNoEval } from "./mergers/no-eval";
66
import { mergeNoMemberDelimiterStyle } from "./mergers/member-delimiter-style";
77
import { mergeNoUnnecessaryTypeAssertion } from "./mergers/no-unnecessary-type-assertion";
8+
import { mergeTripleSlashReference } from "./mergers/triple-slash-reference";
89

910
export const mergers = new Map([
1011
["@typescript-eslint/ban-types", mergeBanTypes],
1112
["@typescript-eslint/consistent-type-assertions", mergeConsistentTypeAssertions],
1213
["@typescript-eslint/indent", mergeIndent],
1314
["@typescript-eslint/member-delimiter-style", mergeNoMemberDelimiterStyle],
1415
["@typescript-eslint/no-unnecessary-type-assertion", mergeNoUnnecessaryTypeAssertion],
16+
["@typescript-eslint/triple-slash-reference", mergeTripleSlashReference],
1517
["no-caller", mergeNoCaller],
1618
["no-eval", mergeNoEval],
1719
]);
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { mergeTripleSlashReference } from "../triple-slash-reference";
2+
3+
const option = {
4+
path: "always",
5+
types: "prefer-import",
6+
lib: "always",
7+
};
8+
9+
describe(mergeTripleSlashReference, () => {
10+
test("neither options existing", () => {
11+
const result = mergeTripleSlashReference(undefined, undefined);
12+
13+
expect(result).toEqual([]);
14+
});
15+
16+
test("only existing options", () => {
17+
const result = mergeTripleSlashReference([option], undefined);
18+
19+
expect(result).toEqual([option]);
20+
});
21+
22+
test("only new options", () => {
23+
const result = mergeTripleSlashReference(undefined, [option]);
24+
25+
expect(result).toEqual([option]);
26+
});
27+
});
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { RuleMerger } from "../merger";
2+
3+
export const mergeTripleSlashReference: RuleMerger = (existingOptions, newOptions) => {
4+
return [existingOptions?.[0] ?? newOptions?.[0]].filter(Boolean);
5+
};

0 commit comments

Comments
 (0)