Skip to content

Commit

Permalink
chore(eslint-plugin): runs auto fix
Browse files Browse the repository at this point in the history
  • Loading branch information
gtkatakura committed Apr 29, 2024
1 parent 48a21d9 commit b7933a4
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 133 deletions.
1 change: 0 additions & 1 deletion packages/eslint-plugin-vtex/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
},
Expand Down
Original file line number Diff line number Diff line change
@@ -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()
Expand Down
Original file line number Diff line number Diff line change
@@ -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()
Expand All @@ -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],
},
],
}
)
20 changes: 14 additions & 6 deletions packages/eslint-plugin-vtex/src/rules/prefer-early-return.ts
Original file line number Diff line number Diff line change
@@ -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
}

Expand Down Expand Up @@ -30,8 +32,9 @@ export const preferEarlyReturn = createRule<Options, any, any>({
},
],
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 }],
Expand All @@ -58,7 +61,12 @@ export const preferEarlyReturn = createRule<Options, any, any>({
)
}

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) {
Expand All @@ -73,7 +81,7 @@ export const preferEarlyReturn = createRule<Options, any, any>({

context.report({
node: lastNode,
messageId: 'default'
messageId: 'default',
})
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import type { TSESTree } from '@typescript-eslint/utils'
import { createRule } from "../createRule"

import { createRule } from '../createRule'

const USE_EFFECT_NAME = 'useEffect'

Expand Down Expand Up @@ -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
}
Expand Down Expand Up @@ -86,5 +90,5 @@ export const preferUseEffectNamedCallback = createRule({
return {
CallExpression: checkUseEffectCallExpression,
}
}
},
})
Loading

0 comments on commit b7933a4

Please sign in to comment.