/**
 * @license
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Do not add any bazel-specific properties in this file to keep it clean.
// Please add such properties to the .eslintrc-bazel.js file
const path = require('path');

module.exports = {
  "extends": ["eslint:recommended", "google"],
  "parserOptions": {
    "ecmaVersion": 9,
    "sourceType": "module"
  },
  "env": {
    "browser": true,
    "es6": true
  },
  "rules": {
    // https://eslint.org/docs/rules/no-confusing-arrow
    "no-confusing-arrow": "error",
    // https://eslint.org/docs/rules/newline-per-chained-call
    "newline-per-chained-call": ["error", {"ignoreChainWithDepth": 2}],
    // https://eslint.org/docs/rules/arrow-body-style
    "arrow-body-style": ["error", "as-needed",
      {"requireReturnForObjectLiteral": true}],
    // https://eslint.org/docs/rules/arrow-parens
    "arrow-parens": ["error", "as-needed"],
    // https://eslint.org/docs/rules/block-spacing
    "block-spacing": ["error", "always"],
    // https://eslint.org/docs/rules/brace-style
    "brace-style": ["error", "1tbs", {"allowSingleLine": true}],
    // https://eslint.org/docs/rules/camelcase
    "camelcase": "off",
    // https://eslint.org/docs/rules/comma-dangle
    "comma-dangle": ["error", {
      "arrays": "always-multiline",
      "objects": "always-multiline",
      "imports": "always-multiline",
      "exports": "always-multiline",
      "functions": "never"
    }],
    // https://eslint.org/docs/rules/eol-last
    "eol-last": "off",
    // https://eslint.org/docs/rules/indent
    "indent": ["error", 2, {
      "MemberExpression": 2,
      "FunctionDeclaration": {"body": 1, "parameters": 2},
      "FunctionExpression": {"body": 1, "parameters": 2},
      "CallExpression": {"arguments": 2},
      "ArrayExpression": 1,
      "ObjectExpression": 1,
      "SwitchCase": 1
    }],
    // https://eslint.org/docs/rules/keyword-spacing
    "keyword-spacing": ["error", {"after": true, "before": true}],
    // https://eslint.org/docs/rules/lines-between-class-members
    "lines-between-class-members": ["error", "always"],
    // https://eslint.org/docs/rules/max-len
    "max-len": [
      "error",
      80,
      2,
      {
        "ignoreComments": true,
        "ignorePattern": "^import .*;$"
      }
    ],
    // https://eslint.org/docs/rules/new-cap
    "new-cap": ["error", {
      "capIsNewExceptions": ["Polymer", "GestureEventListeners"],
      "capIsNewExceptionPattern": "^.*Mixin$"
    }],
    // https://eslint.org/docs/rules/no-console
    "no-console": ["error", { allow: ["warn", "error", "info", "assert", "group", "groupEnd"] }],
    // https://eslint.org/docs/rules/no-multiple-empty-lines
    "no-multiple-empty-lines": ["error", {"max": 1}],
    // https://eslint.org/docs/rules/no-prototype-builtins
    "no-prototype-builtins": "off",
    // https://eslint.org/docs/rules/no-redeclare
    "no-redeclare": "off",
    // https://eslint.org/docs/rules/no-trailing-spaces
    "no-trailing-spaces": "error",
    // https://eslint.org/docs/rules/no-irregular-whitespace
    "no-irregular-whitespace": "error",
    // https://eslint.org/docs/rules/array-callback-return
    "array-callback-return": ['error', { allowImplicit: true }],
    // https://eslint.org/docs/rules/no-restricted-syntax
    "no-restricted-syntax": [
      "error",
      {
        "selector": "ExpressionStatement > CallExpression > MemberExpression[object.name='test'][property.name='only']",
        "message": "Remove test.only."
      },
      {
        "selector": "ExpressionStatement > CallExpression > MemberExpression[object.name='suite'][property.name='only']",
        "message": "Remove suite.only."
      }
    ],
    // no-undef disables global variable.
    // "globals" declares allowed global variables.
    // https://eslint.org/docs/rules/no-undef
    "no-undef": ["error"],
    // https://eslint.org/docs/rules/no-useless-escape
    "no-useless-escape": "off",
    // https://eslint.org/docs/rules/no-var
    "no-var": "error",
    // https://eslint.org/docs/rules/operator-linebreak
    "operator-linebreak": "off",
    // https://eslint.org/docs/rules/object-shorthand
    "object-shorthand": ["error", "always"],
    // https://eslint.org/docs/rules/padding-line-between-statements
    "padding-line-between-statements": [
      "error",
      {
        "blankLine": "always",
        "prev": "class",
        "next": "*"
      },
      {
        "blankLine": "always",
        "prev": "*",
        "next": "class"
      }
    ],
    // https://eslint.org/docs/rules/prefer-arrow-callback
    "prefer-arrow-callback": "error",
    // https://eslint.org/docs/rules/prefer-const
    "prefer-const": "error",
    // https://eslint.org/docs/rules/prefer-promise-reject-errors
    "prefer-promise-reject-errors": "error",
    // https://eslint.org/docs/rules/prefer-spread
    "prefer-spread": "error",
    // https://eslint.org/docs/rules/prefer-object-spread
    "prefer-object-spread": "error",
    // https://eslint.org/docs/rules/quote-props
    "quote-props": ["error", "consistent-as-needed"],
    // https://eslint.org/docs/rules/semi
    "semi": ["error", "always"],
    // https://eslint.org/docs/rules/template-curly-spacing
    "template-curly-spacing": "error",

    // https://eslint.org/docs/rules/require-jsdoc
    "require-jsdoc": 0,
    // https://eslint.org/docs/rules/valid-jsdoc
    "valid-jsdoc": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-alignment
    "jsdoc/check-alignment": 2,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-examples
    "jsdoc/check-examples": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-indentation
    "jsdoc/check-indentation": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-param-names
    "jsdoc/check-param-names": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-syntax
    "jsdoc/check-syntax": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-tag-names
    "jsdoc/check-tag-names": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-types
    "jsdoc/check-types": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-implements-on-classes
    "jsdoc/implements-on-classes": 2,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-match-description
    "jsdoc/match-description": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-newline-after-description
    "jsdoc/newline-after-description": 2,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-types
    "jsdoc/no-types": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-undefined-types
    "jsdoc/no-undefined-types": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-description
    "jsdoc/require-description": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-description-complete-sentence
    "jsdoc/require-description-complete-sentence": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-example
    "jsdoc/require-example": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-hyphen-before-param-description
    "jsdoc/require-hyphen-before-param-description": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-jsdoc
    "jsdoc/require-jsdoc": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param
    "jsdoc/require-param": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-description
    "jsdoc/require-param-description": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-name
    "jsdoc/require-param-name": 2,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns
    "jsdoc/require-returns": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-check
    "jsdoc/require-returns-check": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-description
    "jsdoc/require-returns-description": 0,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-valid-types
    "jsdoc/valid-types": 2,
    // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-file-overview
    "jsdoc/require-file-overview": ["error", {
      "tags": {
        "license": {
          "mustExist": true,
          "preventDuplicates": true
        }
      }
    }],
    // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-self-import.md
    "import/no-self-import": 2,
    // The no-cycle rule is slow, because it doesn't cache dependencies.
    // Disable it.
    // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-cycle.md
    "import/no-cycle": 0,
    // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-useless-path-segments.md
    "import/no-useless-path-segments": 2,
    // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-unused-modules.md
    "import/no-unused-modules": 2,
    // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-default-export.md
    "import/no-default-export": 2,
    // Prevents certain identifiers being used.
    // Prefer flush() over flushAsynchronousOperations().
    "id-blacklist": ["error", "flushAsynchronousOperations"],
  },

  // List of allowed globals in all files
  "globals": {
    // Polygerrit global variables.
    // You must not add anything new in this list!
    // Instead export variables from modules
    // TODO(dmfilippov): Remove global variables from polygerrit
    // Global variables from 3rd party libraries.
    // You should not add anything in this list, always try to import
    // If import is not possible - you can extend this list
    "ShadyCSS": "readonly",
    "linkify": "readonly",
    "security": "readonly",
  },
  "overrides": [
    {
      // .js-only rules
      "files": ["**/*.js"],
      "rules": {
        // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-type
        "jsdoc/require-param-type": 2,
        // https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-type
        "jsdoc/require-returns-type": 2,
        // The rule is required for .js files only, because typescript compiler
        // always checks import.
        "import/no-unresolved": 2,
        "import/named": 2,
      },
      "globals": {
        "goog": "readonly",
      }
    },
    {
      "files": ["**/*.ts"],
      "extends": [require.resolve("gts/.eslintrc.json")],
      "rules": {
        "no-restricted-imports": ["error", {
          name: "@polymer/decorators/lib/decorators",
          message: "Use @polymer/decorators instead",
        }],
        // See https://github.com/GoogleChromeLabs/shadow-selection-polyfill/issues/9
        "@typescript-eslint/ban-ts-ignore": "off",
        // The following rules is required to match internal google rules
        "@typescript-eslint/restrict-plus-operands": "error",
        // https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-unsupported-features/node-builtins.md
        "node/no-unsupported-features/node-builtins": "off",
        // Disable no-invalid-this for ts files, because it incorrectly reports
        // errors in some cases (see https://github.com/typescript-eslint/typescript-eslint/issues/491)
        // At the same time, we are using typescript in a strict mode and
        // it catches almost all errors related to invalid usage of this.
        "no-invalid-this": "off",

        "node/no-extraneous-import": "off",

        // Typescript already checks for undef
        "no-undef": "off",

        "jsdoc/no-types": 2,
      },
      "parserOptions": {
        "project": path.resolve(__dirname, "./tsconfig_eslint.json"),
      }
    },
    {
      "files": ["*.html", "test.js", "test-infra.js"],
      "rules": {
        "jsdoc/require-file-overview": "off"
      },
    },
    {
      "files": [
        "*.html",
        "*_test.js",
        "a11y-test-utils.js",
      ],
      // Additional global variables allowed in tests
      "globals": {
        // Global variables from 3rd party test libraries/frameworks.
        // You can extend this list if you want to use other global
        // variables from these libraries and import is not possible
        "MockInteractions": "readonly",
        "_": "readonly",
        "axs": "readonly",
        "a11ySuite": "readonly",
        "assert": "readonly",
        "expect": "readonly",
        "fixture": "readonly",
        "flush": "readonly",
        "flushAsynchronousOperations": "readonly",
        "setup": "readonly",
        "sinon": "readonly",
        "stub": "readonly",
        "suite": "readonly",
        "suiteSetup": "readonly",
        "suiteTeardown": "readonly",
        "teardown": "readonly",
        "test": "readonly",
        "fixtureFromElement": "readonly",
        "fixtureFromTemplate": "readonly",
      }
    },
    {
      "files": "import-href.js",
      "globals": {
        "HTMLImports": "readonly",
      }
    },
    {
      "files": ["samples/**/*.js"],
      "globals": {
        // Settings for samples. You can add globals here if you want to use it
        "Gerrit": "readonly",
        "Polymer": "readonly",
      }
    },
    {
      "files": ["test/functional/**/*.js"],
      // Settings for functional tests. These scripts are node scripts.
      // Turn off "no-undef" to allow any global variable
      "env": {
        "browser": false,
        "node": true,
        "es6": false
      },
      "rules": {
        "no-undef": "off",
      }
    },
    {
      "files": ["*_html.js", "gr-icons.js", "*-theme.js", "*-styles.js"],
      "rules": {
        "max-len": "off"
      }
    },
    {
      "files": ["*_html.js"],
      "rules": {
        "prettier/prettier": ["error", {
          "bracketSpacing": false,
          "singleQuote": true,
        }]
      }
    }
  ],
  "plugins": [
    "html",
    "jsdoc",
    "import",
    "prettier"
  ],
  "settings": {
    "html/report-bad-indent": "error",
    "import/resolver": {
      "node": {},
      [path.resolve(__dirname, './.eslint-ts-resolver.js')]: {},
    },
  },
};
