12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- const fs = require('fs')
- const path = require('path')
- const prettierOptions = JSON.parse(
- fs.readFileSync(path.resolve(__dirname, '.prettierrc'), 'utf8')
- )
- module.exports = {
- parser: 'babel-eslint',
- extends: ['standard', 'standard-react', 'prettier', 'prettier/react'],
- plugins: ['prettier', 'redux-saga', 'react', 'react-hooks', 'jsx-a11y'],
- env: {
- browser: true,
- node: true,
- jest: true,
- es6: true
- },
- parserOptions: {
- ecmaVersion: 6,
- sourceType: 'module',
- ecmaFeatures: {
- jsx: true
- }
- },
- rules: {
- 'prettier/prettier': ['error', prettierOptions],
- // 'arrow-parens': 0,
- 'arrow-body-style': [2, 'as-needed'],
- 'class-methods-use-this': 0,
- 'import/imports-first': 0,
- 'import/newline-after-import': 0,
- 'import/no-dynamic-require': 0,
- 'import/no-extraneous-dependencies': 0,
- 'import/no-named-as-default': 0,
- 'import/no-unresolved': 2,
- 'import/no-webpack-loader-syntax': 0,
- 'import/prefer-default-export': 0,
- indent: [
- 2,
- 2,
- {
- SwitchCase: 1
- }
- ],
- 'jsx-a11y/aria-props': 2,
- 'jsx-a11y/heading-has-content': 0,
- 'jsx-a11y/label-has-associated-control': [
- 2,
- {
- // NOTE: If this error triggers, either disable it or add
- // your custom components, labels and attributes via these options
- // See https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/label-has-associated-control.md
- controlComponents: ['Input']
- }
- ],
- 'jsx-a11y/label-has-for': 0,
- 'jsx-a11y/mouse-events-have-key-events': 2,
- 'jsx-a11y/role-has-required-aria-props': 2,
- 'jsx-a11y/role-supports-aria-props': 2,
- 'jsx-quotes': ['error', 'prefer-double'],
- 'max-len': 0,
- 'newline-per-chained-call': 0,
- 'no-confusing-arrow': 0,
- 'no-console': 1,
- 'no-unused-vars': 2,
- 'no-use-before-define': 0,
- 'prefer-template': 2,
- // "space-before-function-paren": 2,
- "space-before-function-paren": ["error", "never"],
- 'react/destructuring-assignment': 0,
- 'react-hooks/rules-of-hooks': 'error',
- 'react-hooks/exhaustive-deps': 'error',
- 'react/jsx-closing-tag-location': 0,
- 'react/forbid-prop-types': 0,
- 'react/jsx-first-prop-new-line': [2, 'multiline'],
- 'react/jsx-filename-extension': 0,
- 'react/jsx-no-target-blank': 0,
- 'react/jsx-uses-vars': 2,
- 'react/require-default-props': 0,
- 'react/require-extension': 0,
- 'react/self-closing-comp': 0,
- 'react/sort-comp': 0,
- 'redux-saga/no-yield-in-race': 2,
- 'redux-saga/yield-effects': 2,
- 'require-yield': 0
- },
- settings: {
- 'import/resolver': {
- webpack: {
- config: './internals/webpack/webpack.prod.babel.js'
- }
- }
- }
- }
|