{
  "parser": "@typescript-eslint/parser",
  "plugins": [
      "prefer-arrow",
      "@typescript-eslint",
      "prettier"
  ],
  "extends": [
      "plugin:@typescript-eslint/recommended",
      "prettier"
  ],
  "ignorePatterns": [
      "build/**",
      "node_modules/**",
      "dist/**",
      "src/app/controllers/type/**",
      "src/app/static/sapui5/**",
      "scripts/**"
  ],
  "rules": {
    "prefer-arrow/prefer-arrow-functions": 0,
    "@typescript-eslint/consistent-type-definitions": 0,
    "no-cond-assign": [
        2,
        "always"
    ],
    "dot-notation": 2,
    "@typescript-eslint/naming-convention": [
        "error",
      {
        "selector": "variable",
        "format": [
            "camelCase",
            "PascalCase",
            "UPPER_CASE"
        ]
      }
    ],
    "no-unused-expressions": "off",
    "@typescript-eslint/no-unused-expressions": [
        "off",
      {
        "allowTernary": true
      }
    ],
    "@typescript-eslint/no-shadow": 2,
    "prefer-rest-params": 0,
    "@typescript-eslint/prefer-function-type": 2,
    "@typescript-eslint/quotes": [
        "error",
        "single",
      {
        "avoidEscape": true,
        "allowTemplateLiterals": true
      }
    ],
    "@typescript-eslint/explicit-member-accessibility": 0,
    "sort-imports": 0,
    "@typescript-eslint/member-ordering": 0,
    "@typescript-eslint/comma-dangle": 0,
    "@typescript-eslint/no-extra-parens": 0,
    "arrow-parens": 0,
    "arrow-body-style": 0,
    "sort-keys": 0,
    "max-classes-per-file": 0,
    "no-console": 0,
    "quote-props": [
        2,
        "as-needed"
    ],
    "no-return-await": 2,
    "@typescript-eslint/array-type": [
        2,
      {
        "default": "array"
      }
    ],
    "eol-last": 0,
    "no-trailing-spaces": 0,
    "prettier/prettier": "error",
             //        Make sure that ts-exports are predictable when imported into plain JS code
    //        "no-restricted-syntax": [
        //            "error",
        //            {
        //                "selector": "ExportDefaultDeclaration",
        //                "message": "Prefer named exports"
                                       //            }
        //        ],
    "max-len": [
        2,
      {
        "code": 120,
        // JSDOC or single line comments
        "ignorePattern": " *\\*.+ |//.*",
        "ignoreTemplateLiterals": true,
        "ignoreRegExpLiterals": true,
        "ignoreStrings": true
      }
    ],
    "@typescript-eslint/no-explicit-any": 0,
    "@typescript-eslint/explicit-module-boundary-types": 0,
    "@typescript-eslint/ban-types": 0,
    "@typescript-eslint/ban-ts-comment": 0,
    "@typescript-eslint/no-inferrable-types": 0,
    "@typescript-eslint/no-non-null-assertion": 0,
    "@typescript-eslint/no-unused-vars": 0,
    "@typescript-eslint/no-var-requires": 0,
    "@typescript-eslint/no-empty-function": 0,
    "@typescript-eslint/unified-signatures": 0,
    "no-bitwise": 2,
    "@typescript-eslint/no-this-alias": 0
  }
}
