blob: 081c0bfcd32f11912736db566ed4239f9fcc32fe [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
# Note:
# If eslint does not work in VSCode, please check:
# (1) Whether "@typescript-eslint/eslint-plugin" and "@typescript-eslint/parser"
# are npm installed locally. Should better in the same version.
# (2) Whether "VSCode ESlint extension" is installed.
# (3) If the project folder is not the root folder of your working space, please
# config the "VSCode ESlint extension" in "settings":
# ```json
# "eslint.workingDirectories": [{"mode": "auto"}]
# ```
# Note that it should be "workingDirectories" rather than "WorkingDirectories".
root: true
rules:
# Check the rules in: node_modules/@typescript-eslint/eslint-plugin/README.md
no-console:
- 2
-
allow:
- "warn"
- "error"
prefer-const: 1
no-constant-condition: 0
comma-dangle: 2
no-debugger: 2
no-dupe-keys: 2
no-empty-character-class: 2
no-ex-assign: 2
no-extra-boolean-cast: 0
no-func-assign: 2
no-inner-declarations: 2
no-invalid-regexp: 2
no-negated-in-lhs: 2
no-obj-calls: 2
no-sparse-arrays: 2
no-unreachable: 2
use-isnan: 2
valid-typeof: 2
block-scoped-var: 2
curly:
- 2
- "all"
eqeqeq:
- 2
- "allow-null"
guard-for-in: 2
no-else-return: 0
no-labels:
- 2
-
allowLoop: true
no-eval: 2
no-extend-native: 2
no-extra-bind: 0
no-implied-eval: 2
no-iterator: 2
no-irregular-whitespace: 2
no-lone-blocks: 2
no-loop-func: 2
no-multi-str: 2
no-native-reassign: 2
no-new-wrappers: 2
no-octal: 2
no-octal-escape: 2
no-proto: 2
no-self-compare: 2
no-unneeded-ternary: 2
no-with: 2
radix: 2
wrap-iife:
- 2
- "any"
no-delete-var: 2
no-dupe-args: 2
no-duplicate-case: 2
no-label-var: 2
no-shadow-restricted-names: 2
no-undef: 2
no-undef-init: 2
"no-use-before-define": "off"
"@typescript-eslint/no-use-before-define": 0
brace-style:
- 2
- "stroustrup"
- {}
comma-spacing:
- 2
-
before: false
after: true
comma-style:
- 2
- "last"
new-parens: 2
no-array-constructor: 2
no-multi-spaces:
- 1
-
ignoreEOLComments: true
exceptions:
Property: true
no-new-object: 2
no-trailing-spaces: 2
no-extra-parens:
- 2
- "functions"
no-mixed-spaces-and-tabs: 2
one-var:
- 2
- "never"
operator-linebreak:
- 2
- "before"
-
overrides:
"=": "after"
"quotes": "off"
"@typescript-eslint/quotes":
- 2
- "single"
"semi": "off"
"@typescript-eslint/semi":
- 2
- "always"
semi-spacing: 2
keyword-spacing: 2
key-spacing:
- 2
-
beforeColon: false
afterColon: true
"space-before-function-paren": "off"
"@typescript-eslint/space-before-function-paren":
- 2
-
anonymous: "always"
named: "never"
space-before-blocks:
- 2
- "always"
computed-property-spacing:
- 2
- "never"
space-in-parens:
- 2
- "never"
space-unary-ops: 2
spaced-comment: 0
max-nested-callbacks:
- 1
- 5
max-depth:
- 1
- 6
max-len:
- 2
- 120
- 4
-
ignoreUrls: true
ignoreComments: true
max-params:
- 1
- 15
space-infix-ops: 2
dot-notation:
- 2
-
allowKeywords: true
allowPattern: "^catch$"
arrow-spacing: 2
constructor-super: 2
no-confusing-arrow:
- 2
-
allowParens: true
no-class-assign: 2
no-const-assign: 2
# no-dupe-class-members: 2
no-this-before-super: 0
no-var: 2
no-duplicate-imports: 2
prefer-rest-params: 0
unicode-bom: 2
max-statements-per-line: 2
no-useless-constructor: 0
"func-call-spacing": "off"
"@typescript-eslint/func-call-spacing": "error"
"no-unused-vars": "off"
"@typescript-eslint/no-unused-vars":
- 1
-
vars: "local"
args: "none"
# Avoid dangerous usage of globals.
"no-restricted-globals":
- 2
- "event"
- "name"
- "length"
- "orientation"
- "top"
- "parent"
- "location"
- "closed"