module.exports = { parser: 'babel-eslint', root: true, env: { browser: true, node: true, mocha: true, es6: true, }, ecmaFeatures: { jsx: true, }, extends: 'eslint:recommended', rules: { // Errors 'array-bracket-spacing': ['error', 'never'], 'arrow-spacing': 'error', 'arrow-parens': 'error', 'block-spacing': ['error', 'always'], 'brace-style': 'error', 'comma-dangle': ['error', 'always-multiline'], 'comma-style': ['error', 'last'], 'comma-spacing': ['error', {before: false, after: true}], 'computed-property-spacing': ['error', 'never'], 'consistent-this': ['error', 'self'], 'consistent-return': 'error', 'dot-notation': 'error', 'dot-location': ['error', 'property'], 'eqeqeq': ['error', 'smart'], 'eol-last': 'error', 'indent': ['error', 2, {SwitchCase: 1}], 'jsx-quotes': ['error', 'prefer-double'], 'key-spacing': 'error', 'max-len': ['error', 120, 4], 'new-cap': ['error', {capIsNew: true, newIsCap: true}], 'no-console': 'error', 'no-unused-expressions': 'error', 'no-unused-vars': 'error', 'no-shadow': 'error', 'no-spaced-func': 'error', 'no-multiple-empty-lines': 'error', 'no-multi-spaces': 'error', 'no-undef': 'error', 'no-empty-pattern': 'error', 'no-dupe-keys': 'error', 'no-dupe-args': 'error', 'no-duplicate-case': 'error', 'no-cond-assign': 'error', 'no-extra-semi': 'error', 'no-extra-boolean-cast': 'error', 'no-trailing-spaces': 'error', 'no-unreachable': 'error', 'no-unneeded-ternary': 'error', 'no-useless-computed-key': 'error', 'no-unsafe-finally': 'error', 'no-process-exit': 'error', 'no-var': 'error', 'object-curly-spacing': ['error', 'never'], 'one-var': ['error', 'never'], 'operator-linebreak': ['error', 'after'], 'padded-blocks': ['error', 'never'], 'prefer-arrow-callback': 'error', 'prefer-const': 'error', 'prefer-template': 'error', 'quotes': ['error', 'single', 'avoid-escape'], 'semi': ['error', 'always'], 'keyword-spacing': 'error', 'space-before-blocks': ['error', 'always'], 'space-before-function-paren': ['error', 'never'], 'space-infix-ops': 'error', 'space-unary-ops': ['error', { words: true, nonwords: false }], 'spaced-comment': 'error', 'yoda': 'error', // Disabled 'no-case-declarations': 'off', 'strict': 'off', 'no-magic-numbers': 'off', 'camelcase': 'off', 'no-underscore-dangle': 'off', 'handle-callback-err': 'off', } };