@payloadcms/eslint-config
Version:
Payload styles for ESLint and Prettier
51 lines (49 loc) • 1.14 kB
JavaScript
import reactRules from './rules/react.mjs'
import reactA11yRules from './rules/react-a11y.mjs'
import jsxA11y from 'eslint-plugin-jsx-a11y'
import react from '@eslint-react/eslint-plugin'
import reactHooks from 'eslint-plugin-react-hooks'
import globals from 'globals'
import { deepMerge } from '../../deepMerge.js'
/** @type {import('eslint').Linter.Config} */
export const index = deepMerge(
react.configs['recommended-type-checked'],
{
rules: {
...reactHooks.configs.recommended.rules,
'@eslint-react/hooks-extra/no-direct-set-state-in-use-effect': 'off',
'@eslint-react/naming-convention/use-state': 'off',
},
},
{
rules: reactRules,
},
{
rules: reactA11yRules,
},
{
languageOptions: {
globals: {
...globals.browser,
},
parserOptions: {
ecmaFeatures: {
jsx: true,
},
},
},
plugins: {
'jsx-a11y': jsxA11y,
'react-hooks': reactHooks,
},
settings: {
react: {
version: 'detect',
},
},
rules: {
'react-hooks/rules-of-hooks': 'error',
},
},
)
export default index