module.exports = { env: { node: true, browser: true, es6: true, }, extends: ['eslint:recommended'], parserOptions: { ecmaVersion: 2020, sourceType: 'module', }, rules: { curly: ['error', 'multi-line'], eqeqeq: ['error', 'always'], semi: ['error', 'never'], indent: [ 'error', 2, { SwitchCase: 1, }, ], quotes: [ 'error', 'single', { avoidEscape: true, allowTemplateLiterals: true, }, ], 'key-spacing': [ 'error', { beforeColon: false, afterColon: true, mode: 'strict', }, ], 'no-empty': 'error', 'no-else-return': 'error', 'no-multi-spaces': 'error', 'require-await': 'error', 'brace-style': ['error', 'stroustrup'], 'spaced-comment': ['error', 'always'], 'arrow-spacing': 'error', 'no-duplicate-imports': 'error', 'comma-spacing': [ 'error', { before: false, after: true, }, ], 'default-case': 'error', 'consistent-this': ['error', '_this'], 'max-depth': ['error', 6], 'max-lines': ['error', 2000], 'no-multi-str': 'error', 'space-infix-ops': 'error', 'space-before-blocks': ['error', 'always'], 'space-before-function-paren': [ 'error', { named: 'never', anonymous: 'never', asyncArrow: 'always', }, ], 'keyword-spacing': ['error'], 'prefer-const': 'error', 'no-useless-return': 'error', 'array-bracket-spacing': 'error', 'no-useless-escape': 'off', 'no-case-declarations': 'off', 'no-eval': 'error', 'no-var': 'error', 'no-with': 'error', 'no-alert': 'warn', 'no-console': 'warn', 'no-debugger': 'warn', }, overrides: [ { files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'], env: { jest: true, }, }, ], };