1{ 2 "root": true, 3 "env": { 4 "browser": false, 5 "es6": true, 6 "node": true 7 }, 8 "parserOptions": { 9 "ecmaVersion": 2018, 10 "sourceType": "module", 11 "project": "./tsconfig.json" 12 }, 13 "overrides": [ 14 { 15 "files": ["*.ts"], 16 "parser": "@typescript-eslint/parser", 17 "extends": [ 18 "plugin:@typescript-eslint/recommended", 19 "prettier/@typescript-eslint", 20 "plugin:prettier/recommended" 21 ], 22 "rules": { 23 "prettier/prettier": ["error", { "singleQuote": true }], 24 "complexity": ["error", { "max": 10 }], 25 "max-params": ["error", { "max": 5 }], 26 "max-depth": ["error", { "max": 4 }], 27 "max-lines-per-function": ["error", { "max": 50, "skipBlankLines": true, "skipComments": true }], 28 "quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": true }], 29 "max-len": [ 30 "error", 31 { 32 "code": 120, 33 "tabWidth": 2, 34 "ignoreTemplateLiterals": true, 35 "ignoreRegExpLiterals": true, 36 "ignoreStrings": true 37 } 38 ], 39 "@typescript-eslint/no-var-requires": "off", 40 "@typescript-eslint/prefer-function-type": "error", 41 "no-unmodified-loop-condition": "error", 42 "no-shadow-restricted-names": "error", 43 "prefer-object-spread": "error", 44 "no-iterator": "error", 45 "array-callback-return": "error", 46 "no-new-wrappers": "error", 47 "@typescript-eslint/naming-convention": [ 48 "error", 49 { "selector": "variableLike", "format": ["camelCase", "UPPER_CASE"] } 50 ], 51 "require-yield": "error", 52 "no-caller": "error", 53 "no-multi-str": "error", 54 "no-implied-eval": "off", 55 "@typescript-eslint/no-implied-eval": ["error"], 56 "no-invalid-regexp": "error", 57 "no-compare-neg-zero": "error", 58 "no-useless-catch": "error", 59 "no-labels": "error", 60 "for-direction": "error", 61 "@typescript-eslint/adjacent-overload-signatures": "error", 62 "no-useless-rename": "error", 63 "grouped-accessor-pairs": "error", 64 "no-regex-spaces": "error", 65 "no-useless-concat": "error", 66 "no-global-assign": "error", 67 "no-useless-call": "error", 68 "@typescript-eslint/no-empty-interface": "error", 69 "no-sequences": "error", 70 "no-new-func": "error", 71 "no-proto": "error", 72 "no-self-compare": "error", 73 "no-sparse-arrays": "error", 74 "no-dupe-class-members": "off", 75 "@typescript-eslint/no-dupe-class-members": ["error"], 76 "no-undef-init": "error", 77 "guard-for-in": "error", 78 "no-empty-pattern": "error", 79 "symbol-description": "error", 80 "no-new-object": "error", 81 "no-empty-character-class": "error", 82 "prefer-regex-literals": "error", 83 "no-lone-blocks": "error", 84 "no-eq-null": "error", 85 "no-useless-computed-key": "error", 86 "no-template-curly-in-string": "error", 87 "no-array-constructor": "off", 88 "@typescript-eslint/no-array-constructor": ["error"], 89 "no-extend-native": "error", 90 "no-extra-bind": "error", 91 "no-self-assign": "error", 92 "no-extra-boolean-cast": "error", 93 "no-async-promise-executor": "error", 94 "no-duplicate-case": "error", 95 "no-class-assign": "error", 96 "no-constructor-return": "error", 97 "no-misleading-character-class": "error", 98 "no-func-assign": "error", 99 "no-ex-assign": "error", 100 "no-dupe-else-if": "error", 101 "no-fallthrough": "error", 102 "no-case-declarations": "error" 103 } 104 }, 105 { 106 "files": ["*.js"], 107 "extends": ["eslint:recommended", "prettier"], 108 "rules": { 109 "quotes": ["error", "single"], 110 "semi": ["error", "always"], 111 "import/no-extraneous-dependencies": "off", 112 "import/order": "off", 113 "global-require": "off" 114 } 115 } 116 ] 117}