Change .eslintrc to proper json

pull/10616/head
Andrew Watkins 2018-03-20 10:04:17 -07:00 committed by Brandon Farmer
parent 2ecbc218db
commit 96e6b0e7e0
1 changed files with 407 additions and 259 deletions

View File

@ -1,260 +1,408 @@
{
"parser": "babel-eslint",
plugins: [
'react',
'prettier',
'babel',
'jest',
],
extends: [
"prettier",
"prettier/react"
],
env: {
browser: true,
mocha: true,
"jest": true,
node: true,
es6: true,
},
globals: {
expect: true,
},
parserOptions: {
ecmaFeatures: {
arrowFunctions: true,
binaryLiterals: true,
blockBindings: true,
classes: true,
defaultParams: false,
destructuring: true,
forOf: false,
generators: false,
modules: true,
objectLiteralComputedProperties: true,
objectLiteralDuplicateProperties: false,
objectLiteralShorthandMethods: true,
objectLiteralShorthandProperties: true,
octalLiterals: false,
regexUFlag: false,
regexYFlag: false,
restParams: true,
spread: true,
superInFunctions: false,
templateStrings: true,
unicodeCodePointEscapes: false,
globalReturn: false,
jsx: true,
},
},
rules: {
'quotes': [1, 'single'],
'func-style': 0,
'func-names': 0,
'arrow-parens': 0,
'comma-dangle': [2, 'always-multiline'],
'no-cond-assign': 2,
'no-console': ['error', {allow: ['error', 'warn']}],
'no-constant-condition': 2,
'no-control-regex': 2,
'no-debugger': 2,
'no-dupe-args': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty': 2,
'no-ex-assign': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': 0,
'no-extra-semi': 2,
'no-func-assign': 2,
'no-inner-declarations': [2, 'both'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-negated-in-lhs': 2,
'no-obj-calls': 2,
'no-regex-spaces': 2,
'no-sparse-arrays': 2,
'no-unexpected-multiline': 2,
'no-unreachable': 2,
'use-isnan': 2,
'valid-jsdoc': 0,
'valid-typeof': 2,
'accessor-pairs': 2,
'block-scoped-var': 2,
'complexity': 0, // TODO: revisit
'consistent-return': 0,
'curly': 2,
'default-case': 0, // TODO: revisit
'dot-location': [2, 'property'],
'dot-notation': 2,
'eqeqeq': 2,
'no-alert': 2,
'no-caller': 2,
'no-case-declarations': 2,
'no-div-regex': 2,
'no-else-return': 2,
'no-labels': 2,
'no-empty-pattern': 2,
'no-eq-null': 2,
'no-eval': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-implicit-coercion': 0,
'no-implied-eval': 2,
'no-iterator': 2,
'no-lone-blocks': 2,
'no-loop-func': 2,
'no-magic-numbers': [0, {ignore: [-1, 0, 1, 2]}],
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-native-reassign': 2,
'no-new-func': 2,
'no-new-wrappers': 2,
'no-new': 2,
'no-octal-escape': 2,
'no-octal': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-script-url': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-throw-literal': 2,
'no-unused-expressions': 2,
'no-useless-call': 2,
'no-useless-concat': 2,
'no-void': 2,
'no-warning-comments': 0,
'no-with': 2,
'radix': 2,
'vars-on-top': 2,
'strict': [2, 'never'],
'init-declarations': 0,
'no-catch-shadow': 2,
'no-delete-var': 2,
'no-label-var': 2,
'no-shadow-restricted-names': 2,
'no-shadow': 2,
'no-undef-init': 2,
'no-undef': 2,
'no-unused-vars': [2, {args: 'after-used', 'argsIgnorePattern': '^_'}],
'no-use-before-define': [2, 'nofunc'],
'array-bracket-spacing': [2, 'never'],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs'],
'camelcase': [2, {properties: 'never'}],
'comma-spacing': [2, {before: false, after: true}],
'comma-style': [2, 'last'],
'computed-property-spacing': [2, 'never'],
'consistent-this': [2, 'self'],
'eol-last': 0, // TODO: revisit
'id-length': 0,
'id-match': 0,
'indent': [0, 2, {SwitchCase: 1}],
'key-spacing': [2, {beforeColon: false, afterColon: true}],
'linebreak-style': [2, 'unix'],
'lines-around-comment': 0,
'max-depth': 0,
'max-len': 0,
'max-nested-callbacks': 0,
'max-params': 0,
'max-statements': 0,
'new-cap': 0,
'new-parens': 2,
'newline-after-var': 0,
'no-array-constructor': 2,
'no-negated-condition': 2,
'no-inline-comments': 0,
'no-lonely-if': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multiple-empty-lines': 2,
'no-nested-ternary': 2,
'no-new-object': 2,
'no-plusplus': [2, {allowForLoopAfterthoughts: true}],
'no-spaced-func': 2,
'no-ternary': 0,
'no-trailing-spaces': 2,
'no-underscore-dangle': 0,
'no-unneeded-ternary': 2,
'object-curly-spacing': [2, 'never'],
'one-var': 0,
'operator-assignment': [2, 'always'],
'padded-blocks': [2, 'never'],
'quote-props': [2, 'as-needed', {keywords: false, numbers: false }],
'require-jsdoc': 0,
'semi-spacing': [2, {before: false, after: true}],
'semi': [2, 'never'],
'sort-vars': 0,
'keyword-spacing': 'error',
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': 2,
'spaced-comment': [2, 'always'],
'wrap-regex': 0,
'arrow-body-style': 0,
'arrow-spacing': [2, {before: true, after: true}],
'no-confusing-arrow': 0,
'no-class-assign': 2,
'no-const-assign': 2,
'no-dupe-class-members': 2,
'no-this-before-super': 2,
'no-var': 2,
'object-shorthand': [2, 'always'],
'prefer-arrow-callback': 0,
'prefer-const': 2,
'prefer-template': 2,
// React
'jsx-quotes': [1, "prefer-double"],
'react/display-name': 0,
'react/jsx-no-bind': [2, {ignoreRefs: true}],
'react/jsx-boolean-value': [2, 'always'],
'react/jsx-curly-spacing': [2, 'never'],
'react/jsx-equals-spacing': [2, 'never'],
'react/jsx-key': 2,
'react/jsx-no-duplicate-props': 2,
'react/jsx-no-undef': 2,
'react/jsx-sort-props': 0,
'react/jsx-sort-prop-types': 0,
'react/jsx-uses-react': 2,
'react/jsx-uses-vars': 2,
'react/no-danger': 2,
'react/no-did-mount-set-state': 0,
'react/no-did-update-set-state': 2,
'react/no-direct-mutation-state': 2,
'react/no-is-mounted': 2,
'react/no-multi-comp': 0,
'react/no-set-state': 0,
'react/no-string-refs': 0, // TODO: 2
'react/no-unknown-property': 2,
'react/prop-types': 2,
'react/prefer-es6-class': [0, 'never'],
'react/react-in-jsx-scope': 2,
'react/require-extension': 0,
'react/self-closing-comp': 0, // TODO: we can re-enable this if some brave soul wants to update the code (mostly spans acting as icons)
'react/sort-comp': 0, // TODO: 2
// Prettier
'prettier/prettier': ['error', {
'singleQuote': true,
'trailingComma': 'es5',
'bracketSpacing': false,
'semi': false,
}],
// jest
'jest/no-disabled-tests': "warn",
'jest/no-focused-tests': "error",
// Babel
'babel/no-invalid-this': 1
},
}
"parser": "babel-eslint",
"plugins": [
"react",
"prettier",
"babel",
"jest"
],
"extends": [
"prettier",
"prettier/react"
],
"env": {
"browser": true,
"mocha": true,
"jest": true,
"node": true,
"es6": true
},
"globals": {
"expect": true
},
"parserOptions": {
"ecmaFeatures": {
"arrowFunctions": true,
"binaryLiterals": true,
"blockBindings": true,
"classes": true,
"defaultParams": false,
"destructuring": true,
"forOf": false,
"generators": false,
"modules": true,
"objectLiteralComputedProperties": true,
"objectLiteralDuplicateProperties": false,
"objectLiteralShorthandMethods": true,
"objectLiteralShorthandProperties": true,
"octalLiterals": false,
"regexUFlag": false,
"regexYFlag": false,
"restParams": true,
"spread": true,
"superInFunctions": false,
"templateStrings": true,
"unicodeCodePointEscapes": false,
"globalReturn": false,
"jsx": true
}
},
"rules": {
"quotes": [
1,
"single"
],
"func-style": 0,
"func-names": 0,
"arrow-parens": 0,
"comma-dangle": [
2,
"always-multiline"
],
"no-cond-assign": 2,
"no-console": [
"error",
{
"allow": [
"error",
"warn"
]
}
],
"no-constant-condition": 2,
"no-control-regex": 2,
"no-debugger": 2,
"no-dupe-args": 2,
"no-dupe-keys": 2,
"no-duplicate-case": 2,
"no-empty-character-class": 2,
"no-empty": 2,
"no-ex-assign": 2,
"no-extra-boolean-cast": 2,
"no-extra-parens": 0,
"no-extra-semi": 2,
"no-func-assign": 2,
"no-inner-declarations": [
2,
"both"
],
"no-invalid-regexp": 2,
"no-irregular-whitespace": 2,
"no-negated-in-lhs": 2,
"no-obj-calls": 2,
"no-regex-spaces": 2,
"no-sparse-arrays": 2,
"no-unexpected-multiline": 2,
"no-unreachable": 2,
"use-isnan": 2,
"valid-jsdoc": 0,
"valid-typeof": 2,
"accessor-pairs": 2,
"block-scoped-var": 2,
"complexity": 0,
"consistent-return": 0,
"curly": 2,
"default-case": 0,
"dot-location": [
2,
"property"
],
"dot-notation": 2,
"eqeqeq": 2,
"no-alert": 2,
"no-caller": 2,
"no-case-declarations": 2,
"no-div-regex": 2,
"no-else-return": 2,
"no-labels": 2,
"no-empty-pattern": 2,
"no-eq-null": 2,
"no-eval": 2,
"no-extend-native": 2,
"no-extra-bind": 2,
"no-fallthrough": 2,
"no-floating-decimal": 2,
"no-implicit-coercion": 0,
"no-implied-eval": 2,
"no-iterator": 2,
"no-lone-blocks": 2,
"no-loop-func": 2,
"no-magic-numbers": [
0,
{
"ignore": [
-1,
0,
1,
2
]
}
],
"no-multi-spaces": 2,
"no-multi-str": 2,
"no-native-reassign": 2,
"no-new-func": 2,
"no-new-wrappers": 2,
"no-new": 2,
"no-octal-escape": 2,
"no-octal": 2,
"no-proto": 2,
"no-redeclare": 2,
"no-script-url": 2,
"no-self-compare": 2,
"no-sequences": 2,
"no-throw-literal": 2,
"no-unused-expressions": 2,
"no-useless-call": 2,
"no-useless-concat": 2,
"no-void": 2,
"no-warning-comments": 0,
"no-with": 2,
"radix": 2,
"vars-on-top": 2,
"strict": [
2,
"never"
],
"init-declarations": 0,
"no-catch-shadow": 2,
"no-delete-var": 2,
"no-label-var": 2,
"no-shadow-restricted-names": 2,
"no-shadow": 2,
"no-undef-init": 2,
"no-undef": 2,
"no-unused-vars": [
2,
{
"args": "after-used",
"argsIgnorePattern": "^_"
}
],
"no-use-before-define": [
2,
"nofunc"
],
"array-bracket-spacing": [
2,
"never"
],
"block-spacing": [
2,
"always"
],
"brace-style": [
2,
"1tbs"
],
"camelcase": [
2,
{
"properties": "never"
}
],
"comma-spacing": [
2,
{
"before": false,
"after": true
}
],
"comma-style": [
2,
"last"
],
"computed-property-spacing": [
2,
"never"
],
"consistent-this": [
2,
"self"
],
"eol-last": 0,
"id-length": 0,
"id-match": 0,
"indent": [
0,
2,
{
"SwitchCase": 1
}
],
"key-spacing": [
2,
{
"beforeColon": false,
"afterColon": true
}
],
"linebreak-style": [
2,
"unix"
],
"lines-around-comment": 0,
"max-depth": 0,
"max-len": 0,
"max-nested-callbacks": 0,
"max-params": 0,
"max-statements": 0,
"new-cap": 0,
"new-parens": 2,
"newline-after-var": 0,
"no-array-constructor": 2,
"no-negated-condition": 2,
"no-inline-comments": 0,
"no-lonely-if": 2,
"no-mixed-spaces-and-tabs": 2,
"no-multiple-empty-lines": 2,
"no-nested-ternary": 2,
"no-new-object": 2,
"no-plusplus": [
2,
{
"allowForLoopAfterthoughts": true
}
],
"no-spaced-func": 2,
"no-ternary": 0,
"no-trailing-spaces": 2,
"no-underscore-dangle": 0,
"no-unneeded-ternary": 2,
"object-curly-spacing": [
2,
"never"
],
"one-var": 0,
"operator-assignment": [
2,
"always"
],
"padded-blocks": [
2,
"never"
],
"quote-props": [
2,
"as-needed",
{
"keywords": false,
"numbers": false
}
],
"require-jsdoc": 0,
"semi-spacing": [
2,
{
"before": false,
"after": true
}
],
"semi": [
2,
"never"
],
"sort-vars": 0,
"keyword-spacing": "error",
"space-before-blocks": [
2,
"always"
],
"space-before-function-paren": [
2,
"never"
],
"space-in-parens": [
2,
"never"
],
"space-infix-ops": 2,
"space-unary-ops": 2,
"spaced-comment": [
2,
"always"
],
"wrap-regex": 0,
"arrow-body-style": 0,
"arrow-spacing": [
2,
{
"before": true,
"after": true
}
],
"no-confusing-arrow": 0,
"no-class-assign": 2,
"no-const-assign": 2,
"no-dupe-class-members": 2,
"no-this-before-super": 2,
"no-var": 2,
"object-shorthand": [
2,
"always"
],
"prefer-arrow-callback": 0,
"prefer-const": 2,
"prefer-template": 2,
"jsx-quotes": [
1,
"prefer-double"
],
"react/display-name": 0,
"react/jsx-no-bind": [
2,
{
"ignoreRefs": true
}
],
"react/jsx-boolean-value": [
2,
"always"
],
"react/jsx-curly-spacing": [
2,
"never"
],
"react/jsx-equals-spacing": [
2,
"never"
],
"react/jsx-key": 2,
"react/jsx-no-duplicate-props": 2,
"react/jsx-no-undef": 2,
"react/jsx-sort-props": 0,
"react/jsx-sort-prop-types": 0,
"react/jsx-uses-react": 2,
"react/jsx-uses-vars": 2,
"react/no-danger": 2,
"react/no-did-mount-set-state": 0,
"react/no-did-update-set-state": 2,
"react/no-direct-mutation-state": 2,
"react/no-is-mounted": 2,
"react/no-multi-comp": 0,
"react/no-set-state": 0,
"react/no-string-refs": 0,
"react/no-unknown-property": 2,
"react/prop-types": 2,
"react/prefer-es6-class": [
0,
"never"
],
"react/react-in-jsx-scope": 2,
"react/require-extension": 0,
"react/self-closing-comp": 0,
"react/sort-comp": 0,
"prettier/prettier": [
"error",
{
"singleQuote": true,
"trailingComma": "es5",
"bracketSpacing": false,
"semi": false
}
],
"jest/no-disabled-tests": "warn",
"jest/no-focused-tests": "error",
"babel/no-invalid-this": 1
}
}