diff options
author | Stas Vilchik <stas.vilchik@sonarsource.com> | 2018-04-27 17:22:22 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2018-04-27 20:20:45 +0200 |
commit | 0e0296c32b281364f3174b2b14d9dc31b8426769 (patch) | |
tree | 8417e74a2863b7a5c859000e74e74c00c5985f2c /server/sonar-web/.eslintrc | |
parent | 77ac9136fa46b471bac80420680e661343fcb495 (diff) | |
download | sonarqube-0e0296c32b281364f3174b2b14d9dc31b8426769.tar.gz sonarqube-0e0296c32b281364f3174b2b14d9dc31b8426769.zip |
use eslint-config-sonarqube (#191)
Diffstat (limited to 'server/sonar-web/.eslintrc')
-rw-r--r-- | server/sonar-web/.eslintrc | 215 |
1 files changed, 1 insertions, 214 deletions
diff --git a/server/sonar-web/.eslintrc b/server/sonar-web/.eslintrc index e03bc7b4c63..f3c47f9df45 100644 --- a/server/sonar-web/.eslintrc +++ b/server/sonar-web/.eslintrc @@ -1,216 +1,3 @@ { - "extends": [ - "eslint:recommended", - "plugin:import/errors", - "plugin:react/recommended", - "plugin:jsx-a11y/recommended", - "plugin:promise/recommended", - "plugin:sonarjs/recommended" - ], - - "env": { - "browser": true, - "es6": true, - "jest": true, - "node": true - }, - - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module", - "ecmaFeatures": { - "jsx": true, - "modules": true - } - }, - - "globals": { - "baseUrl": true, - "SyntheticInputEvent": true - }, - - "parser": "typescript-eslint-parser", - - "plugins": ["import", "jsx-a11y", "react", "promise", "sonarjs"], - - "rules": { - // possible errors - "for-direction": "error", - "no-prototype-builtins": "error", - "no-template-curly-in-string": "error", - "no-unsafe-negation": "error", - - // best practices - // TODO turn all rules to "error" eventually - "array-callback-return": "error", - "block-scoped-var": "error", - "complexity": "warn", - "consistent-return": "warn", - "eqeqeq": ["error", "smart"], - "guard-for-in": "error", - "no-alert": "error", - "no-caller": "error", - "no-div-regex": "error", - "no-eval": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-extra-label": "error", - "no-floating-decimal": "error", - "no-implied-eval": "error", - "no-iterator": "error", - "no-labels": "error", - "no-lone-blocks": "error", - "no-loop-func": "error", - "no-new": "warn", - "no-new-func": "error", - "no-new-wrappers": "error", - "no-proto": "error", - "no-restricted-properties": "error", - "no-return-assign": "error", - "no-return-await": "error", - "no-self-compare": "error", - "no-sequences": "error", - "no-throw-literal": "error", - "no-unmodified-loop-condition": "error", - "no-unused-expressions": "error", - "no-useless-call": "error", - "no-useless-concat": "error", - "no-useless-escape": "error", - "no-useless-return": "error", - "no-void": "error", - "no-with": "error", - "radix": "error", - "require-await": "error", - "wrap-iife": "error", - "yoda": "error", - - // stylistic - "camelcase": "warn", - "consistent-this": ["warn", "that"], - "func-name-matching": "error", - "func-style": ["warn", "declaration", { "allowArrowFunctions": true }], - "lines-between-class-members": ["error", "always", { "exceptAfterSingleLine": true }], - "max-depth": "warn", - "max-lines": ["warn", 1000], - "max-params": ["warn", 4], - "no-array-constructor": "warn", - "no-bitwise": "warn", - "no-lonely-if": "error", - "no-multi-assign": "warn", - "no-nested-ternary": "warn", - "no-new-object": "warn", - "no-underscore-dangle": "warn", - "no-unneeded-ternary": "warn", - "one-var": ["warn", "never"], - "operator-assignment": "warn", - "padding-line-between-statements": [ - "error", - { "blankLine": "always", "prev": "*", "next": ["class", "function"] }, - { "blankLine": "always", "prev": ["class", "function"], "next": "*" } - ], - - // es2015 - "no-duplicate-imports": "error", - "no-useless-computed-key": "error", - "no-useless-rename": "error", - "no-var": "error", - "object-shorthand": "error", - "prefer-arrow-callback": "error", - "prefer-const": "error", - "prefer-destructuring": ["warn", { "object": true, "array": false }], - "prefer-numeric-literals": "warn", - "prefer-rest-params": "warn", - "prefer-spread": "warn", - - // disabled because of the usage of typescript-eslint-parser - // https://github.com/eslint/typescript-eslint-parser/issues/77 - "no-undef": "off", - "no-unused-vars": "off", - - // import - "import/extensions": "error", - "import/first": "error", - "import/newline-after-import": "error", - "import/no-absolute-path": "error", - "import/no-amd": "error", - "import/no-deprecated": "error", - "import/no-duplicates": "error", - "import/no-dynamic-require": "error", - "import/no-extraneous-dependencies": "error", - "import/no-mutable-exports": "error", - "import/no-named-as-default": "error", - "import/no-named-as-default-member": "error", - "import/no-named-default": "error", - "import/no-webpack-loader-syntax": "error", - "import/order": [ - "error", - { - "groups": ["builtin", "external", ["index", "sibling"], ["parent", "internal"]], - "newlines-between": "never" - } - ], - - // does not properly work with ts - "import/no-unresolved": "off", - - // react - // TODO turn all rules to "error" eventually - "react/button-has-type": "warn", - "react/display-name": "warn", - "react/jsx-boolean-value": ["error", "always"], - "react/jsx-no-comment-textnodes": "warn", - "react/jsx-no-target-blank": "warn", - "react/jsx-pascal-case": "error", - "react/jsx-sort-default-props": "warn", - "react/jsx-sort-props": "warn", - "react/no-access-state-in-setstate": "warn", - "react/no-find-dom-node": "warn", - "react/no-string-refs": "warn", - "react/no-this-in-sfc": "error", - "react/self-closing-comp": "error", - "react/sort-comp": [ - "error", - { - "order": [ - "type-annotations", - "instance-variables", - "static-methods", - "lifecycle", - "everything-else", - "rendering" - ], - "groups": { "rendering": ["/^render.+$/", "render"] } - } - ], - - // turn off prop types validation, better use ts ;) - "react/prop-types": "off", - - // jsx-a11y - "jsx-a11y/anchor-has-content": "warn", - "jsx-a11y/no-noninteractive-tabindex": "warn", - "jsx-a11y/no-redundant-roles": "warn", - "jsx-a11y/no-static-element-interactions": "warn", - - "jsx-a11y/anchor-is-valid": "off", - "jsx-a11y/click-events-have-key-events": "off", - "jsx-a11y/no-autofocus": "off", - "jsx-a11y/no-noninteractive-element-interactions": "off", - // has FPs - "jsx-a11y/label-has-for": "off", - - // promise - "promise/catch-or-return": ["warn", { "allowThen": true }], - - "promise/always-return": "off", - "promise/avoid-new": "off", - - // sonarjs - "sonarjs/cognitive-complexity": "warn", - "sonarjs/no-identical-functions": "warn" - }, - - "settings": { - "import/ignore": ["node_modules"] - } + "extends": "sonarqube" } |