From cd13d50aa2f3dc9ada1da42dda70797a3d49d146 Mon Sep 17 00:00:00 2001 From: Bhavin Kotak Date: Mon, 27 Jul 2020 23:00:43 +0530 Subject: [PATCH 1/2] Added jsx-no-bind rule --- .../eslint-plugin-react/jsx-no-bind.ts | 12 ++++++++++++ .../tests/jsx-no-bind.test.ts | 18 ++++++++++++++++++ src/rules/rulesConverters.ts | 2 ++ 3 files changed, 32 insertions(+) create mode 100644 src/rules/converters/eslint-plugin-react/jsx-no-bind.ts create mode 100644 src/rules/converters/eslint-plugin-react/tests/jsx-no-bind.test.ts diff --git a/src/rules/converters/eslint-plugin-react/jsx-no-bind.ts b/src/rules/converters/eslint-plugin-react/jsx-no-bind.ts new file mode 100644 index 000000000..4aea77c24 --- /dev/null +++ b/src/rules/converters/eslint-plugin-react/jsx-no-bind.ts @@ -0,0 +1,12 @@ +import { RuleConverter } from "../../converter"; + +export const convertJsxNoBind: RuleConverter = () => { + return { + rules: [ + { + ruleName: "react/jsx-no-bind", + }, + ], + plugins: ["eslint-plugin-react"], + }; +}; diff --git a/src/rules/converters/eslint-plugin-react/tests/jsx-no-bind.test.ts b/src/rules/converters/eslint-plugin-react/tests/jsx-no-bind.test.ts new file mode 100644 index 000000000..3ab89dfe4 --- /dev/null +++ b/src/rules/converters/eslint-plugin-react/tests/jsx-no-bind.test.ts @@ -0,0 +1,18 @@ +import { convertJsxNoBind } from "../jsx-no-bind"; + +describe(convertJsxNoBind, () => { + test("conversion without arguments", () => { + const result = convertJsxNoBind({ + ruleArguments: [], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "react/jsx-no-bind", + }, + ], + plugins: ["eslint-plugin-react"], + }); + }); +}); diff --git a/src/rules/rulesConverters.ts b/src/rules/rulesConverters.ts index 31be596f3..349940971 100644 --- a/src/rules/rulesConverters.ts +++ b/src/rules/rulesConverters.ts @@ -177,6 +177,7 @@ import { convertJsxBooleanValue } from "./converters/eslint-plugin-react/jsx-boo import { convertJsxCurlySpacing } from "./converters/eslint-plugin-react/jsx-curly-spacing"; import { convertJsxEqualsSpacing } from "./converters/eslint-plugin-react/jsx-equals-spacing"; import { convertJsxKey } from "./converters/eslint-plugin-react/jsx-key"; +import { convertJsxNoBind } from "./converters/eslint-plugin-react/jsx-no-bind"; /** * Keys TSLint rule names to their ESLint rule converters. @@ -218,6 +219,7 @@ export const rulesConverters = new Map([ ["jsx-curly-spacing", convertJsxCurlySpacing], ["jsx-equals-spacing", convertJsxEqualsSpacing], ["jsx-key", convertJsxKey], + ["jsx-no-bind", convertJsxNoBind], ["label-position", convertLabelPosition], ["linebreak-style", convertLinebreakStyle], ["max-classes-per-file", convertMaxClassesPerFile], From 17e01b819214a4bc50765171335f78915763c5fa Mon Sep 17 00:00:00 2001 From: Bhavin Kotak Date: Wed, 29 Jul 2020 10:57:37 +0530 Subject: [PATCH 2/2] Added notices --- src/rules/converters/eslint-plugin-react/jsx-no-bind.ts | 1 + .../converters/eslint-plugin-react/tests/jsx-no-bind.test.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/rules/converters/eslint-plugin-react/jsx-no-bind.ts b/src/rules/converters/eslint-plugin-react/jsx-no-bind.ts index 4aea77c24..d0bc22e0f 100644 --- a/src/rules/converters/eslint-plugin-react/jsx-no-bind.ts +++ b/src/rules/converters/eslint-plugin-react/jsx-no-bind.ts @@ -5,6 +5,7 @@ export const convertJsxNoBind: RuleConverter = () => { rules: [ { ruleName: "react/jsx-no-bind", + notices: ["ESLint rule 'jsx-no-bind' also checks for arrow functions"], }, ], plugins: ["eslint-plugin-react"], diff --git a/src/rules/converters/eslint-plugin-react/tests/jsx-no-bind.test.ts b/src/rules/converters/eslint-plugin-react/tests/jsx-no-bind.test.ts index 3ab89dfe4..b73193571 100644 --- a/src/rules/converters/eslint-plugin-react/tests/jsx-no-bind.test.ts +++ b/src/rules/converters/eslint-plugin-react/tests/jsx-no-bind.test.ts @@ -10,6 +10,7 @@ describe(convertJsxNoBind, () => { rules: [ { ruleName: "react/jsx-no-bind", + notices: ["ESLint rule 'jsx-no-bind' also checks for arrow functions"], }, ], plugins: ["eslint-plugin-react"],