|  |  | 
|  | # 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: "error" | 
|  |  | 
|  | 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" |