From 35d683efa3426de32cf6b87f40165b0866053719 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Tue, 14 Apr 2020 01:09:52 -0400 Subject: [PATCH] Add merger for @typescript-eslint/consistent-type-assertions; --- src/rules/mergers.ts | 4 ++- .../mergers/consistent-type-assertions.ts | 5 ++++ .../tests/consistent-type-assertions.test.ts | 25 +++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/rules/mergers/consistent-type-assertions.ts create mode 100644 src/rules/mergers/tests/consistent-type-assertions.test.ts diff --git a/src/rules/mergers.ts b/src/rules/mergers.ts index 3697234f4..a1bd04620 100644 --- a/src/rules/mergers.ts +++ b/src/rules/mergers.ts @@ -1,12 +1,14 @@ import { mergeBanTypes } from "./mergers/ban-types"; +import { mergeConsistentTypeAssertions } from "./mergers/consistent-type-assertions"; import { mergeIndent } from "./mergers/indent"; -import { mergeNoMemberDelimiterStyle } from "./mergers/member-delimiter-style"; import { mergeNoCaller } from "./mergers/no-caller"; import { mergeNoEval } from "./mergers/no-eval"; +import { mergeNoMemberDelimiterStyle } from "./mergers/member-delimiter-style"; import { mergeNoUnnecessaryTypeAssertion } from "./mergers/no-unnecessary-type-assertion"; export const mergers = new Map([ ["@typescript-eslint/ban-types", mergeBanTypes], + ["@typescript-eslint/consistent-type-assertions", mergeConsistentTypeAssertions], ["@typescript-eslint/indent", mergeIndent], ["@typescript-eslint/member-delimiter-style", mergeNoMemberDelimiterStyle], ["@typescript-eslint/no-unnecessary-type-assertion", mergeNoUnnecessaryTypeAssertion], diff --git a/src/rules/mergers/consistent-type-assertions.ts b/src/rules/mergers/consistent-type-assertions.ts new file mode 100644 index 000000000..24e943df7 --- /dev/null +++ b/src/rules/mergers/consistent-type-assertions.ts @@ -0,0 +1,5 @@ +import { RuleMerger } from "../merger"; + +export const mergeConsistentTypeAssertions: RuleMerger = (existingOptions, newOptions) => { + return [existingOptions?.[0] ?? newOptions?.[0]].filter(Boolean); +}; diff --git a/src/rules/mergers/tests/consistent-type-assertions.test.ts b/src/rules/mergers/tests/consistent-type-assertions.test.ts new file mode 100644 index 000000000..3a3c090fa --- /dev/null +++ b/src/rules/mergers/tests/consistent-type-assertions.test.ts @@ -0,0 +1,25 @@ +import { mergeConsistentTypeAssertions } from "../consistent-type-assertions"; + +const option = { + assertionStyle: "never", +}; + +describe(mergeConsistentTypeAssertions, () => { + test("neither options existing", () => { + const result = mergeConsistentTypeAssertions(undefined, undefined); + + expect(result).toEqual([]); + }); + + test("only existing options", () => { + const result = mergeConsistentTypeAssertions([option], undefined); + + expect(result).toEqual([option]); + }); + + test("only new options", () => { + const result = mergeConsistentTypeAssertions(undefined, [option]); + + expect(result).toEqual([option]); + }); +});