module.exports = { globals: { DEBUG: false, PRODUCTION: false, finstack: false, }, extends: ['eslint:recommended', 'plugin:react/recommended', 'plugin:react/jsx-runtime'], env: { browser: true, es6: true, node: true, }, plugins: ['react', 'jest'], rules: { 'indent': [ 'error', 'tab', {flatTernaryExpressions: true, ignoreComments: true, SwitchCase: 1}, ], 'linebreak-style': ['error', 'unix'], 'quotes': [ 'warn', 'single', {avoidEscape: true, allowTemplateLiterals: true}, ], 'semi': ['error', 'never'], 'object-curly-spacing': ['error', 'never'], 'padded-blocks': ['error', {classes: 'always'}], 'curly': ['error', 'all'], 'quote-props': ['error', 'consistent'], 'eqeqeq': ['warn', 'smart'], 'no-mixed-spaces-and-tabs': ['error', 'smart-tabs'], 'no-unused-vars': ['error', {ignoreRestSiblings: true}], 'comma-spacing': 1, 'eol-last': 1, 'space-infix-ops': 1, 'camelcase': 0, 'no-spaced-func': 1, 'no-use-before-define': 2, 'comma-dangle': 0, 'no-label-var': 2, 'no-extra-parens': 0, 'no-undef-init': 2, 'init-declarations': 0, 'key-spacing': 1, 'no-func-assign': 2, 'no-alert': 2, 'no-shadow': 2, 'react/jsx-uses-vars': 1, 'react/prop-types': 0, 'react/display-name': 0, 'react/no-unknown-property': [ 2, { ignore: ['class', 'for'], }, ], }, parser: '@babel/eslint-parser', parserOptions: { sourceType: 'module', ecmaVersion: 7, ecmaFeatures: { jsx: true, legacyDecorators: true, experimentalDecorators: true, experimentalObjectRestSpread: true, }, }, settings: { react: { version: 'latest', }, }, overrides: [ { files: ['**/*.{ts,tsx}'], parser: '@typescript-eslint/parser', extends: ['plugin:@typescript-eslint/recommended'], plugins: ['@typescript-eslint'], rules: { '@typescript-eslint/explicit-function-return-type': [ 'warn', {allowExpressions: true}, ], '@typescript-eslint/explicit-module-boundary-types': ['warn'], '@typescript-eslint/member-delimiter-style': [ 'warn', {multiline: {delimiter: 'none'}}, ], 'no-use-before-define': 'off', '@typescript-eslint/no-use-before-define': 'error', 'no-unused-vars': 'off', '@typescript-eslint/no-unused-vars': 0, 'no-shadow': 0, '@typescript-eslint/no-shadow': ['warn'], }, }, { files: ['**/*.+(spec|test).[jt]s?(x)'], env: { jest: true, mocha: true, jasmine: true, }, }, ], }