UNPKG

@amcef/eslint-config-react

Version:

AMCEF ESLint config for React apps (v17+)

84 lines (83 loc) 1.99 kB
module.exports = { env: { browser: true, es6: true, }, extends: [ 'plugin:react/recommended', 'plugin:prettier/recommended', 'plugin:import/errors', 'plugin:import/warnings', 'plugin:import/typescript', ], globals: { Atomics: 'readonly', SharedArrayBuffer: 'readonly', }, parser: '@typescript-eslint/parser', parserOptions: { ecmaFeatures: { jsx: true, }, ecmaVersion: 2018, sourceType: 'module', }, plugins: ['react', 'prettier'], settings: { 'import/resolver': { typescript: {}, }, 'react': { version: 'detect', }, }, rules: { 'prettier/prettier': [ 'error', { singleQuote: true, printWidth: 100, tabWidth: 2, useTabs: false, quoteProps: 'consistent', endOfLine: 'auto', }, ], 'import/order': [ 'error', { 'groups': [['builtin', 'external'], 'internal', ['index', 'sibling', 'parent', 'object']], 'pathGroupsExcludedImportTypes': ['builtin'], 'pathGroups': [ { pattern: '@**/**', group: 'external', position: 'after', }, ], 'newlines-between': 'always-and-inside-groups', 'alphabetize': { order: 'asc', caseInsensitive: true, }, }, ], 'no-var': 'error', 'prefer-const': 'error', 'camelcase': 'error', 'quotes': ['error', 'single'], 'jsx-quotes': ['error', 'prefer-double'], 'prefer-template': 'error', 'prefer-arrow-callback': 'error', 'no-useless-rename': 'error', 'no-duplicate-imports': 'error', 'require-jsdoc': 0, 'object-curly-spacing': ['error', 'always'], 'object-property-newline': 'error', 'import/no-named-as-default-member': 0, 'import/no-named-as-default': 0, 'react/display-name': 0, 'react/jsx-uses-react': 'off', 'react/react-in-jsx-scope': 'off', }, };