module.exports = { env: { browser: true, es2021: true, }, extends: [ 'plugin:react/recommended', 'airbnb', 'airbnb-typescript/base', '@pinuts/eslint-config-pinuts-react', 'plugin:json/recommended', 'plugin:react-hooks/recommended', "plugin:import/errors", "plugin:import/warnings" ], settings: { "import/resolver": { "typescript": {}, "node": { "moduleDirectory": ["node_modules", "src/", "lib/src", "."] } } }, parserOptions: { ecmaFeatures: { jsx: true, }, ecmaVersion: 12, sourceType: 'module', project: './tsconfig.json', }, plugins: [ 'react', ], parser: '@typescript-eslint/parser', ignorePatterns: ['**/*.scss', '**/*.svg', '**/*.test.js'], rules: { '@typescript-eslint/indent': 'off', 'quote-props': 'off', 'no-multiple-empty-lines': ['error', { 'max': 2, 'maxBOF': 1 }], 'react/jsx-indent': 'off', 'no-useless-catch': 'off', 'consistent-return': 'off', 'no-unused-expressions': ['error', { allowShortCircuit: true, allowTernary: true }], 'react/jsx-filename-extension': [1, { extensions: ['.js', '.jsx', '.ts', '.tsx'] }], 'react/jsx-indent-props': [0, 4], 'no-shadow': 'off', 'react/display-name': 'off', 'no-console': ['warn', { allow: ['warn', 'error'] }], 'react/jsx-props-no-spreading': 'off', 'react/require-default-props': 'off', 'no-param-reassign': 'off', 'no-return-assign': 'off', 'class-methods-use-this': 'off', 'no-underscore-dangle': 'off', 'no-case-declarations': 'off', 'no-multi-assign': 'off', 'jsx-a11y/no-noninteractive-tabindex': 'off', 'react/no-danger': 'off', 'react/destructuring-assignment': 'off', 'no-prototype-builtins': 'off', 'react/no-array-index-key': 'off', 'jsx-a11y/label-has-associated-control': 'off', 'arrow-parens': 'off', 'newline-before-return': ['error'], 'object-curly-newline': ['error', { 'multiline': true, 'consistent': true }], 'spaced-comment': 'off', 'prefer-template': 'off', 'padded-blocks': 'off', 'prefer-destructuring': 'off', 'arrow-body-style': 'off', 'max-len': ['error', { 'code': 220, 'ignoreComments': true }], 'no-restricted-syntax': 'off', 'react/jsx-boolean-value': 'off', 'react/jsx-curly-brace-presence': 'off', 'import/no-cycle': 'off', 'jsx-a11y/no-onchange': 'off', 'no-plusplus': 'off', 'object-shorthand': 'off', 'react/function-component-definition': 'off', 'react/jsx-no-useless-fragment': 'off', /* das soll rein, sobald Zeit ist */ 'function-paren-newline': 'off', 'default-param-last': 'off', /* das soll rein, sobald Zeit ist => reducer checken */ 'prefer-regex-literals': 'off', 'no-restricted-exports': 'off', 'react/forbid-prop-types': 'off', 'camelcase': 'off', 'react-hooks/rules-of-hooks': 'warn', // Checks rules of Hooks 'react-hooks/exhaustive-deps': 'warn', // Checks effect dependencies 'import/prefer-default-export': 'off', 'import/extensions': 'off', '@typescript-eslint/no-use-before-define': 'off', }, };