From a755106b2a635afc0286ba951b991820b2096c80 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 12 Dec 2020 14:50:50 -0500 Subject: [PATCH 1/3] Added jsx-space-before-trailing-slash converter --- .../lintConfigs/rules/ruleConverters.ts | 2 ++ .../jsx-space-before-trailing-slash.ts | 12 ++++++++++++ .../jsx-space-before-trailing-slash.test.ts | 18 ++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts create mode 100644 src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts diff --git a/src/converters/lintConfigs/rules/ruleConverters.ts b/src/converters/lintConfigs/rules/ruleConverters.ts index 4baf906e4..6374882ea 100644 --- a/src/converters/lintConfigs/rules/ruleConverters.ts +++ b/src/converters/lintConfigs/rules/ruleConverters.ts @@ -180,6 +180,7 @@ import { convertJsxBooleanValue } from "./ruleConverters/eslint-plugin-react/jsx import { convertJsxCurlySpacing } from "./ruleConverters/eslint-plugin-react/jsx-curly-spacing"; import { convertJsxEqualsSpacing } from "./ruleConverters/eslint-plugin-react/jsx-equals-spacing"; import { convertJsxKey } from "./ruleConverters/eslint-plugin-react/jsx-key"; +import { convertJsxSpaceBeforeTrailingSlash } from "./ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash"; import { convertJsxNoBind } from "./ruleConverters/eslint-plugin-react/jsx-no-bind"; import { convertJsxWrapMultiline } from "./ruleConverters/eslint-plugin-react/jsx-wrap-multiline"; @@ -242,6 +243,7 @@ export const ruleConverters = new Map([ ["jsx-equals-spacing", convertJsxEqualsSpacing], ["jsx-key", convertJsxKey], ["jsx-no-bind", convertJsxNoBind], + ["jsx-space-before-trailing-slash", convertJsxSpaceBeforeTrailingSlash], ["jsx-wrap-multiline", convertJsxWrapMultiline], ["label-position", convertLabelPosition], ["linebreak-style", convertLinebreakStyle], diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts new file mode 100644 index 000000000..f9529d322 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts @@ -0,0 +1,12 @@ +import { RuleConverter } from "../../ruleConverter"; + +export const convertJsxSpaceBeforeTrailingSlash: RuleConverter = () => { + return { + rules: [ + { + ruleName: "react/jsx-space-before-closing", + }, + ], + plugins: ["eslint-plugin-react"], + }; +}; diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts new file mode 100644 index 000000000..1c4c83509 --- /dev/null +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts @@ -0,0 +1,18 @@ +import { convertJsxSpaceBeforeTrailingSlash } from "../jsx-space-before-trailing-slash"; + +describe(convertJsxSpaceBeforeTrailingSlash, () => { + test("conversion without arguments", () => { + const result = convertJsxSpaceBeforeTrailingSlash({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "react/jsx-space-before-trailing-slash", + }, + ], + plugins: ["eslint-plugin-react"], + }); + }); +}); From 7dc3be603c1e8628666ef6fdc6d257e8e29cb81d Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 12 Dec 2020 14:52:47 -0500 Subject: [PATCH 2/3] Updated to non deprecated rule --- .../eslint-plugin-react/jsx-space-before-trailing-slash.ts | 7 ++++++- .../tests/jsx-space-before-trailing-slash.test.ts | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts index f9529d322..75e75e4f7 100644 --- a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts @@ -4,7 +4,12 @@ export const convertJsxSpaceBeforeTrailingSlash: RuleConverter = () => { return { rules: [ { - ruleName: "react/jsx-space-before-closing", + ruleArguments: [ + { + beforeSelfClosing: "always", + }, + ], + ruleName: "react/jsx-tag-spacing", }, ], plugins: ["eslint-plugin-react"], diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts index 1c4c83509..bac310588 100644 --- a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts @@ -9,7 +9,12 @@ describe(convertJsxSpaceBeforeTrailingSlash, () => { expect(result).toEqual({ rules: [ { - ruleName: "react/jsx-space-before-trailing-slash", + ruleArguments: [ + { + beforeSelfClosing: "always", + }, + ], + ruleName: "react/jsx-tag-spacing", }, ], plugins: ["eslint-plugin-react"], From a95d83b019f88bf92a585fb697c510b5ce8daab0 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 12 Dec 2020 16:28:36 -0500 Subject: [PATCH 3/3] Respecting default options --- .../eslint-plugin-react/jsx-space-before-trailing-slash.ts | 3 ++- .../tests/jsx-space-before-trailing-slash.test.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts index 75e75e4f7..8a0027488 100644 --- a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/jsx-space-before-trailing-slash.ts @@ -6,7 +6,8 @@ export const convertJsxSpaceBeforeTrailingSlash: RuleConverter = () => { { ruleArguments: [ { - beforeSelfClosing: "always", + afterOpening: "allow", + closingSlash: "allow", }, ], ruleName: "react/jsx-tag-spacing", diff --git a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts index bac310588..8b0fd547b 100644 --- a/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts +++ b/src/converters/lintConfigs/rules/ruleConverters/eslint-plugin-react/tests/jsx-space-before-trailing-slash.test.ts @@ -11,7 +11,8 @@ describe(convertJsxSpaceBeforeTrailingSlash, () => { { ruleArguments: [ { - beforeSelfClosing: "always", + afterOpening: "allow", + closingSlash: "allow", }, ], ruleName: "react/jsx-tag-spacing",