11{
2- "root" : true ,
3- "parser" : " @typescript-eslint/parser" ,
4- "parserOptions" : {
5- "ecmaVersion" : 6 ,
6- "sourceType" : " module"
7- },
8- "plugins" : [
9- " @typescript-eslint"
10- ],
11- "rules" : {
12- "@typescript-eslint/naming-convention" : " warn" ,
13- "@typescript-eslint/semi" : " warn" ,
14- "curly" : " warn" ,
15- "eqeqeq" : " warn" ,
16- "no-throw-literal" : " warn" ,
17- "semi" : " off"
18- },
19- "ignorePatterns" : [
20- " out" ,
21- " dist" ,
22- " **/*.d.ts"
2+ "env" : {
3+ "browser" : false ,
4+ "es2021" : true
5+ },
6+ "extends" : [
7+ " prettier" ,
8+ " eslint:recommended" ,
9+ " plugin:@typescript-eslint/recommended" ,
10+ " airbnb-typescript/base" ,
11+ " airbnb-base" ,
12+ " plugin:sonarjs/recommended" ,
13+ " plugin:jsdoc/recommended-typescript"
14+ ],
15+ "overrides" : [
16+ {
17+ "files" : [
18+ " **/*.spec.ts" ,
19+ " **/*.mock.ts"
20+ ],
21+ "env" : {
22+ "jest" : true
23+ },
24+ "rules" : {
25+ "import/first" : " off" ,
26+ "max-lines-per-function" : " off" ,
27+ "import/no-extraneous-dependencies" : " off" ,
28+ "@typescript-eslint/no-var-requires" : " off" ,
29+ "@typescript-eslint/no-explicit-any" : " off" ,
30+ "@typescript-eslint/dot-notation" : " off" ,
31+ "sonarjs/no-duplicate-string" : " off" ,
32+ "@typescript-eslint/no-non-null-assertion" : " off"
33+ }
34+ }
35+ ],
36+ "parser" : " @typescript-eslint/parser" ,
37+ "parserOptions" : {
38+ "ecmaVersion" : " latest" ,
39+ "sourceType" : " module" ,
40+ "project" : [
41+ " ./tsconfig.json"
2342 ]
24- }
43+ },
44+ "plugins" : [
45+ " @typescript-eslint" ,
46+ " sonarjs" ,
47+ " prettier" ,
48+ " jsdoc"
49+ ],
50+ "rules" : {
51+ "quotes" : [
52+ " error" ,
53+ " double"
54+ ],
55+ "semi" : [
56+ " warn" ,
57+ " always"
58+ ],
59+ "import/extensions" : [
60+ " error" ,
61+ " never"
62+ ],
63+ "no-await-in-loop" : " error" ,
64+ "no-constant-binary-expression" : " error" ,
65+ "no-constructor-return" : " error" ,
66+ "no-duplicate-imports" : " error" ,
67+ "no-self-compare" : " error" ,
68+ "no-template-curly-in-string" : " error" ,
69+ "no-unmodified-loop-condition" : " warn" ,
70+ "no-unreachable-loop" : " warn" ,
71+ "no-unused-private-class-members" : " warn" ,
72+ "no-use-before-define" : " off" ,
73+ "@typescript-eslint/no-use-before-define" : " off" ,
74+ "camelcase" : " off" ,
75+ "dot-notation" : " off" ,
76+ "func-style" : [
77+ " error" ,
78+ " declaration"
79+ ],
80+ "max-depth" : [
81+ " warn" ,
82+ 4
83+ ],
84+ "max-lines" : [
85+ " warn" ,
86+ {
87+ "max" : 500 ,
88+ "skipBlankLines" : true ,
89+ "skipComments" : true
90+ }
91+ ],
92+ "max-lines-per-function" : [
93+ " warn" ,
94+ {
95+ "max" : 40 ,
96+ "skipBlankLines" : true ,
97+ "skipComments" : true
98+ }
99+ ],
100+ "no-confusing-arrow" : " warn" ,
101+ "no-console" : " off" ,
102+ "no-else-return" : [
103+ " error" ,
104+ {
105+ "allowElseIf" : true
106+ }
107+ ],
108+ "no-lone-blocks" : " error" ,
109+ "no-lonely-if" : " error" ,
110+ "no-magic-numbers" : [
111+ " warn" ,
112+ {
113+ "ignore" : [
114+ 0 ,
115+ 1
116+ ]
117+ }
118+ ],
119+ "no-new" : " warn" ,
120+ "no-return-await" : " error" ,
121+ "no-sequences" : " error" ,
122+ "no-unused-expressions" : " error" ,
123+ "no-useless-computed-key" : " warn" ,
124+ "no-useless-concat" : " error" ,
125+ "no-useless-constructor" : " off" ,
126+ "@typescript-eslint/no-useless-constructor" : " error" ,
127+ "no-useless-escape" : " error" ,
128+ "no-useless-call" : " error" ,
129+ "no-useless-rename" : " error" ,
130+ "no-useless-return" : " error" ,
131+ "no-var" : " error" ,
132+ "no-with" : " error" ,
133+ "prefer-arrow-callback" : " error" ,
134+ "prefer-const" : " error" ,
135+ "prefer-destructuring" : " warn" ,
136+ "prefer-template" : " error" ,
137+ "require-await" : " error" ,
138+ "spaced-comment" : " error" ,
139+ "yoda" : " error" ,
140+ "comma-spacing" : [
141+ " error" ,
142+ {
143+ "before" : false ,
144+ "after" : true
145+ }
146+ ],
147+ "no-extra-parens" : " off" ,
148+ "no-whitespace-before-property" : " error" ,
149+ "no-trailing-spaces" : " error" ,
150+ "object-curly-spacing" : [
151+ " error" ,
152+ " always"
153+ ],
154+ "object-curly-newline" : " off" ,
155+ "padded-blocks" : [
156+ " error" ,
157+ " never"
158+ ],
159+ "space-before-blocks" : [
160+ " error" ,
161+ " always"
162+ ],
163+ "space-before-function-paren" : " off" ,
164+ "@typescript-eslint/await-thenable" : " error" ,
165+ "@typescript-eslint/naming-convention" : [
166+ " error" ,
167+ {
168+ "selector" : " default" ,
169+ "format" : [
170+ " camelCase"
171+ ]
172+ },
173+ {
174+ "selector" : " variable" ,
175+ "format" : [
176+ " camelCase" ,
177+ " UPPER_CASE"
178+ ]
179+ },
180+ {
181+ "selector" : " parameter" ,
182+ "format" : [
183+ " camelCase"
184+ ],
185+ "leadingUnderscore" : " allow"
186+ },
187+ {
188+ "selector" : " memberLike" ,
189+ "modifiers" : [
190+ " private"
191+ ],
192+ "format" : [
193+ " camelCase"
194+ ],
195+ "leadingUnderscore" : " allow"
196+ },
197+ {
198+ "selector" : " memberLike" ,
199+ "format" : [
200+ " camelCase" ,
201+ " snake_case"
202+ ],
203+ "leadingUnderscore" : " allow"
204+ },
205+ {
206+ "selector" : " typeLike" ,
207+ "format" : [
208+ " PascalCase"
209+ ]
210+ },
211+ {
212+ "selector" : " variable" ,
213+ "modifiers" : [
214+ " destructured"
215+ ],
216+ "format" : null
217+ },
218+ {
219+ "selector" : " interface" ,
220+ "format" : [
221+ " PascalCase"
222+ ],
223+ "custom" : {
224+ "regex" : " ^I[A-Z]" ,
225+ "match" : false
226+ }
227+ }
228+ ],
229+ "@typescript-eslint/quotes" : [
230+ " error" ,
231+ " double"
232+ ],
233+ "no-underscore-dangle" : " off" ,
234+ "max-len" : [
235+ " error" ,
236+ {
237+ "code" : 80 ,
238+ "ignorePattern" : " (^import .*$|^export .*$)" ,
239+ "ignoreStrings" : true ,
240+ "ignoreComments" : true ,
241+ "ignoreTemplateLiterals" : true
242+ }
243+ ],
244+ "operator-linebreak" : " off" ,
245+ "indent" : " off" ,
246+ "@typescript-eslint/indent" : " off" ,
247+ "no-empty-function" : " off" ,
248+ "implicit-arrow-linebreak" : " off" ,
249+ "function-paren-newline" : " off" ,
250+ "no-plusplus" : [
251+ " error" ,
252+ {
253+ "allowForLoopAfterthoughts" : true
254+ }
255+ ],
256+ "import/no-unresolved" : " off" ,
257+ "import/order" : " off" ,
258+ "class-methods-use-this" : " off" ,
259+ "brace-style" : " off" ,
260+ "@typescript-eslint/brace-style" : " off" ,
261+ "jsdoc/require-jsdoc" : " off" ,
262+ "no-unused-vars" : " off" ,
263+ "@typescript-eslint/no-unused-vars" : " warn"
264+ }
265+ }
0 commit comments