From b7933a4fe862429ac88e3f9178a687ba94343712 Mon Sep 17 00:00:00 2001 From: gtkatakura Date: Mon, 29 Apr 2024 19:25:07 -0300 Subject: [PATCH] chore(eslint-plugin): runs auto fix --- packages/eslint-plugin-vtex/package.json | 1 - .../__tests__/prefer-early-return.test.ts | 1 + .../prefer-use-effect-named-callback.test.ts | 85 ++++++++++--------- .../src/rules/prefer-early-return.ts | 20 +++-- .../rules/prefer-use-effect-named-callback.ts | 16 ++-- yarn.lock | 83 +----------------- 6 files changed, 73 insertions(+), 133 deletions(-) diff --git a/packages/eslint-plugin-vtex/package.json b/packages/eslint-plugin-vtex/package.json index 35fd27d..243b579 100644 --- a/packages/eslint-plugin-vtex/package.json +++ b/packages/eslint-plugin-vtex/package.json @@ -59,7 +59,6 @@ "@typescript-eslint/experimental-utils": "^5.15.0", "@typescript-eslint/parser": "^5.15.0", "babel-jest": "^29.7.0", - "eslint-plugin-jest": "^28.3.0", "jest": "^27.5.1", "tsup": "^8.0.2" }, diff --git a/packages/eslint-plugin-vtex/src/rules/__tests__/prefer-early-return.test.ts b/packages/eslint-plugin-vtex/src/rules/__tests__/prefer-early-return.test.ts index 9c52e6f..4ca9e0b 100644 --- a/packages/eslint-plugin-vtex/src/rules/__tests__/prefer-early-return.test.ts +++ b/packages/eslint-plugin-vtex/src/rules/__tests__/prefer-early-return.test.ts @@ -1,5 +1,6 @@ import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint' import { AST_NODE_TYPES } from '@typescript-eslint/types' + import { preferEarlyReturn } from '../prefer-early-return' const ruleTester = new RuleTester() diff --git a/packages/eslint-plugin-vtex/src/rules/__tests__/prefer-use-effect-named-callback.test.ts b/packages/eslint-plugin-vtex/src/rules/__tests__/prefer-use-effect-named-callback.test.ts index 970f44e..0fb56fe 100644 --- a/packages/eslint-plugin-vtex/src/rules/__tests__/prefer-use-effect-named-callback.test.ts +++ b/packages/eslint-plugin-vtex/src/rules/__tests__/prefer-use-effect-named-callback.test.ts @@ -1,5 +1,6 @@ import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint' import { AST_NODE_TYPES } from '@typescript-eslint/types' + import { preferUseEffectNamedCallback } from '../prefer-use-effect-named-callback' const ruleTester = new RuleTester() @@ -14,98 +15,102 @@ const functionExpressionError = { type: AST_NODE_TYPES.FunctionExpression, } as const -ruleTester.run('prefer-use-effect-named-callback', preferUseEffectNamedCallback, { - valid: [ - { - code: `function Component() { +ruleTester.run( + 'prefer-use-effect-named-callback', + preferUseEffectNamedCallback, + { + valid: [ + { + code: `function Component() { useEffect(function namedEffect() {}, []) return null }`, - }, - { - code: ` + }, + { + code: ` function Component() { React.useEffect(function namedEffect() {}, []) return null } `, - }, - { - code: ` + }, + { + code: ` /* eslint-env es6 */ const effect = () => {} function Component() { useEffect(effect, []) return null; }`, - }, - { - code: ` + }, + { + code: ` /* eslint-env es6 */ const effect = () => {} function Component() { React.useEffect(effect, []) return null; }`, - }, - { - code: ` + }, + { + code: ` /* eslint-env es6 */ const effect = function () {} function Component() { React.useEffect(effect, []) return null; }`, - }, - { - code: ` + }, + { + code: ` /* eslint-env es6 */ const effect = function () {} function Component() { React.useEffect(debouce(() => {}, 10), []) return null; }`, - }, - ], + }, + ], - invalid: [ - { - code: ` + invalid: [ + { + code: ` function Component() { useEffect(function () {}, []) return null } `, - errors: [functionExpressionError], - }, - { - code: ` + errors: [functionExpressionError], + }, + { + code: ` function Component() { React.useEffect(function () {}, []) return null } `, - errors: [functionExpressionError], - }, - { - code: ` + errors: [functionExpressionError], + }, + { + code: ` /* eslint-env es6 */ function Component() { useEffect(() => {}, []) return null } `, - errors: [arrowFunctionError], - }, - { - code: ` + errors: [arrowFunctionError], + }, + { + code: ` /* eslint-env es6 */ function Component() { React.useEffect(() => {}, []) return null } `, - errors: [arrowFunctionError], - }, - ], -}) + errors: [arrowFunctionError], + }, + ], + } +) diff --git a/packages/eslint-plugin-vtex/src/rules/prefer-early-return.ts b/packages/eslint-plugin-vtex/src/rules/prefer-early-return.ts index 7b33593..d24ca50 100644 --- a/packages/eslint-plugin-vtex/src/rules/prefer-early-return.ts +++ b/packages/eslint-plugin-vtex/src/rules/prefer-early-return.ts @@ -1,8 +1,10 @@ import type { TSESTree } from '@typescript-eslint/utils' -import { createRule } from "../createRule" +import { createRule } from '../createRule' -function isLonelyIfStatement(node: TSESTree.Node): node is TSESTree.IfStatement { +function isLonelyIfStatement( + node: TSESTree.Node +): node is TSESTree.IfStatement { return node.type === 'IfStatement' && node.alternate == null } @@ -30,8 +32,9 @@ export const preferEarlyReturn = createRule({ }, ], messages: { - default: 'Prefer an early return to prevent nesting and improve code readability' - } + default: + 'Prefer an early return to prevent nesting and improve code readability', + }, }, defaultOptions: [{ maxStatements: 1 }], @@ -58,7 +61,12 @@ export const preferEarlyReturn = createRule({ ) } - function checkFunctionBody(fnNode: TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.ArrowFunctionExpression) { + function checkFunctionBody( + fnNode: + | TSESTree.FunctionDeclaration + | TSESTree.FunctionExpression + | TSESTree.ArrowFunctionExpression + ) { const bodyNode = fnNode.body if (bodyNode.type !== 'BlockStatement' || bodyNode.body.length === 0) { @@ -73,7 +81,7 @@ export const preferEarlyReturn = createRule({ context.report({ node: lastNode, - messageId: 'default' + messageId: 'default', }) } diff --git a/packages/eslint-plugin-vtex/src/rules/prefer-use-effect-named-callback.ts b/packages/eslint-plugin-vtex/src/rules/prefer-use-effect-named-callback.ts index 2520d4a..5514089 100644 --- a/packages/eslint-plugin-vtex/src/rules/prefer-use-effect-named-callback.ts +++ b/packages/eslint-plugin-vtex/src/rules/prefer-use-effect-named-callback.ts @@ -1,5 +1,6 @@ import type { TSESTree } from '@typescript-eslint/utils' -import { createRule } from "../createRule" + +import { createRule } from '../createRule' const USE_EFFECT_NAME = 'useEffect' @@ -40,18 +41,21 @@ export const preferUseEffectNamedCallback = createRule({ type: 'layout', docs: { recommended: 'error', - description: 'Prefer useEffect with named function or constant callbacks.', + description: + 'Prefer useEffect with named function or constant callbacks.', }, messages: { - default: 'Prefer useEffect with named function or constant callbacks.' + default: 'Prefer useEffect with named function or constant callbacks.', }, - schema: [] + schema: [], }, defaultOptions: [], create(context) { - function checkUseEffectCallExpression(callExpressionNode: TSESTree.CallExpression) { + function checkUseEffectCallExpression( + callExpressionNode: TSESTree.CallExpression + ) { if (!checkCallExpressionIsUseEffect(callExpressionNode)) { return } @@ -86,5 +90,5 @@ export const preferUseEffectNamedCallback = createRule({ return { CallExpression: checkUseEffectCallExpression, } - } + }, }) diff --git a/yarn.lock b/yarn.lock index fb6cb6d..22ae4ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1346,7 +1346,7 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": +"@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== @@ -2842,11 +2842,6 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/json-schema@^7.0.12": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - "@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" @@ -2882,7 +2877,7 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17" integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA== -"@types/semver@^7.3.12", "@types/semver@^7.5.0": +"@types/semver@^7.3.12": version "7.5.8" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== @@ -2980,14 +2975,6 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - "@typescript-eslint/type-utils@5.15.0": version "5.15.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz#d2c02eb2bdf54d0a645ba3a173ceda78346cf248" @@ -3007,11 +2994,6 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== - "@typescript-eslint/typescript-estree@5.15.0": version "5.15.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz#81513a742a9c657587ad1ddbca88e76c6efb0aac" @@ -3038,20 +3020,6 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - "@typescript-eslint/utils@5.15.0", "@typescript-eslint/utils@^5.10.0": version "5.15.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.15.0.tgz#468510a0974d3ced8342f37e6c662778c277f136" @@ -3078,19 +3046,6 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/utils@^6.0.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" - integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - semver "^7.5.4" - "@typescript-eslint/visitor-keys@5.15.0": version "5.15.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz#5669739fbf516df060f978be6a6dce75855a8027" @@ -3107,14 +3062,6 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== - dependencies: - "@typescript-eslint/types" "6.21.0" - eslint-visitor-keys "^3.4.1" - "@zkochan/cmd-shim@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" @@ -4952,13 +4899,6 @@ eslint-plugin-jest@^26.1.1: dependencies: "@typescript-eslint/utils" "^5.10.0" -eslint-plugin-jest@^28.3.0: - version "28.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-28.3.0.tgz#d52dea5e4f191fde061cbf1cea44c8a0a23e62ec" - integrity sha512-5LjCSSno8E+IUCOX4hJiIb/upPIgpkaDEcaN/40gOcw26t/5UTLHFc4JdxKjOOvGTh0XdCu+fNr0fpOVNvcxMA== - dependencies: - "@typescript-eslint/utils" "^6.0.0" - eslint-plugin-jsx-a11y@^6.3.1: version "6.5.1" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" @@ -5066,11 +5006,6 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint-visitor-keys@^3.4.1: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - eslint@^8.11.0: version "8.11.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.11.0.tgz#88b91cfba1356fc10bb9eb592958457dfe09fb37" @@ -7743,13 +7678,6 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -9402,7 +9330,7 @@ semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: dependencies: lru-cache "^6.0.0" -semver@^7.3.7, semver@^7.5.4: +semver@^7.3.7: version "7.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== @@ -10267,11 +10195,6 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== -ts-api-utils@^1.0.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" - integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== - ts-interface-checker@^0.1.9: version "0.1.13" resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"