8
8
9
9
/** @type { import( './eslintrc' ).JSONSchemaForESLintConfigurationFiles } */
10
10
const gEslintConfig = {
11
+ env : {
12
+ "es6" : true ,
13
+ "node" : true ,
14
+ "mocha" : true
15
+ } ,
16
+ parserOptions : {
17
+ "ecmaVersion" : "latest"
18
+ } ,
11
19
extends : [
12
20
'oclif' ,
13
21
'oclif-typescript' ,
@@ -23,18 +31,34 @@ const gEslintConfig = {
23
31
// rules `npx eslint-config-prettier <MAIN_JS_FILE>`
24
32
25
33
'array-bracket-spacing' : [
26
- 'warn ' ,
34
+ 'error ' ,
27
35
'always' ,
28
36
{
29
- arraysInArrays : true ,
30
- objectsInArrays : true ,
31
- singleValue : true ,
37
+ arraysInArrays : false ,
38
+ objectsInArrays : false
32
39
}
33
40
] ,
41
+ 'class-methods-use-this' : 'off' ,
42
+ 'comma-dangle' : [
43
+ 'error' ,
44
+ 'never'
45
+ ] ,
34
46
'computed-property-spacing' : [
35
- 'warn ' ,
47
+ 'error ' ,
36
48
'always'
37
49
] ,
50
+ 'eqeqeq' : [
51
+ 'error' ,
52
+ 'smart'
53
+ ] ,
54
+ 'func-names' : [
55
+ 'warn' ,
56
+ 'never'
57
+ ] ,
58
+ 'function-paren-newline' : [
59
+ 'error' ,
60
+ 'consistent'
61
+ ] ,
38
62
'import/extensions' : [
39
63
'error' ,
40
64
{
@@ -44,8 +68,12 @@ const gEslintConfig = {
44
68
] ,
45
69
'indent' : [
46
70
'error' ,
47
- 4
71
+ 4 ,
72
+ {
73
+ 'SwitchCase' : 1
74
+ }
48
75
] ,
76
+ 'no-alert' : 'error' ,
49
77
'no-console' : [
50
78
'error' ,
51
79
{
@@ -54,6 +82,33 @@ const gEslintConfig = {
54
82
]
55
83
}
56
84
] ,
85
+ 'no-debugger' : 'error' ,
86
+ 'no-var' : 'error' ,
87
+ 'no-param-reassign' : 'error' ,
88
+ 'no-plusplus' : [
89
+ 'warn' ,
90
+ {
91
+ 'allowForLoopAfterthoughts' : true
92
+ }
93
+ ] ,
94
+ 'no-underscore-dangle' : 'off' ,
95
+ 'no-unused-vars' : 'warn' ,
96
+ 'no-use-before-define' : [
97
+ 'error' ,
98
+ {
99
+ 'functions' : false ,
100
+ 'classes' : false ,
101
+ 'variables' : true
102
+ }
103
+ ] ,
104
+ 'no-useless-concat' : 'off' ,
105
+ 'no-magic-numbers' : [
106
+ 'error' ,
107
+ {
108
+ 'ignoreArrayIndexes' : true ,
109
+ 'ignore' : [ - 1 , 0 , 1 ]
110
+ }
111
+ ] ,
57
112
'object-curly-spacing' : [
58
113
'warn' ,
59
114
'always'
@@ -69,7 +124,162 @@ const gEslintConfig = {
69
124
'space-in-parens' : [
70
125
'warn' ,
71
126
'always'
72
- ]
127
+ ] ,
128
+ 'vars-on-top' : 'error' ,
129
+ 'camelcase' : 'error' ,
130
+ 'brace-style' : [ 'error' , '1tbs' ] ,
131
+ 'curly' : 'error' ,
132
+ 'func-call-spacing' : [ 'error' , 'never' ] ,
133
+ 'block-spacing' : 'error' ,
134
+ 'no-multi-spaces' : 'error' ,
135
+ 'comma-spacing' : [
136
+ 'error' , {
137
+ 'before' : false ,
138
+ 'after' : true
139
+ }
140
+ ] ,
141
+ 'comma-style' : [ 'error' , 'last' ] ,
142
+ 'key-spacing' : 'error' ,
143
+ 'keyword-spacing' : [ 'error' , {
144
+ 'overrides' : {
145
+ 'function' : { 'after' : false } ,
146
+ 'typeof' : { 'after' : false } ,
147
+ 'instanceof' : { 'after' : false } ,
148
+ 'yield' : { 'after' : false } ,
149
+ 'throw' : { 'after' : false } ,
150
+ 'super' : { 'after' : false }
151
+ }
152
+ } ] ,
153
+ 'no-trailing-spaces' : 'error' ,
154
+ 'no-shadow' : 'error' ,
155
+ 'no-else-return' : 'error' ,
156
+ 'no-floating-decimal' : 'error' ,
157
+ 'no-implicit-coercion' : 'error' ,
158
+ 'padded-blocks' : [
159
+ 'error' ,
160
+ { 'blocks' : 'never' }
161
+ ] ,
162
+ 'quote-props' : [ 'error' , 'consistent' ] ,
163
+ 'space-before-function-paren' : [
164
+ 'error' , 'never'
165
+ ] ,
166
+ 'space-in-parens' : [
167
+ 'error' ,
168
+ 'always' ,
169
+ { 'exceptions' : [ 'empty' ] }
170
+ ] ,
171
+ 'space-infix-ops' : 'error' ,
172
+ 'quotes' : [
173
+ 'error' ,
174
+ 'single' ,
175
+ { 'allowTemplateLiterals' : true }
176
+ ] ,
177
+ 'prefer-template' : 'off' ,
178
+ 'prefer-const' : 'error' ,
179
+ 'complexity' : [
180
+ 'warn' ,
181
+ { 'max' : 10 }
182
+ ] ,
183
+ 'max-depth' : [
184
+ 'error' ,
185
+ { 'max' : 4 }
186
+ ] ,
187
+ 'max-len' : [
188
+ 'warn' ,
189
+ {
190
+ 'code' : 150 ,
191
+ 'ignoreComments' : false ,
192
+ 'ignorePattern' : '^.*getTranslatedString.*'
193
+ }
194
+ ] ,
195
+ 'max-lines' : [
196
+ 'warn' ,
197
+ { 'max' : 500 }
198
+ ] ,
199
+ 'max-lines-per-function' : 'off' ,
200
+ 'max-nested-callbacks' : [
201
+ 'error' ,
202
+ { 'max' : 4 }
203
+ ] ,
204
+ 'max-params' : 'off' ,
205
+ 'no-ternary' : 'off' ,
206
+ 'multiline-ternary' : [ 'error' , 'always-multiline' ] ,
207
+ 'no-nested-ternary' : 'error' ,
208
+ 'no-multiple-empty-lines' : [
209
+ 'error' ,
210
+ { 'max' : 2 }
211
+ ] ,
212
+ 'prefer-promise-reject-errors' : 'error' ,
213
+ 'prefer-arrow-callback' : 'off' ,
214
+ 'arrow-body-style' : [ 'error' , 'always' ] ,
215
+ 'arrow-parens' : [ 'error' ] ,
216
+ 'require-jsdoc' : [
217
+ 'warn' ,
218
+ {
219
+ 'require' : {
220
+ 'FunctionDeclaration' : true ,
221
+ 'MethodDefinition' : true ,
222
+ 'ClassDeclaration' : true ,
223
+ 'ArrowFunctionExpression' : false ,
224
+ 'FunctionExpression' : false
225
+ }
226
+ }
227
+ ] ,
228
+ 'eol-last' : [ 'error' , 'always' ] ,
229
+ 'object-curly-newline' : [
230
+ 'error' ,
231
+ {
232
+ 'consistent' : true ,
233
+ 'minProperties' : 2 ,
234
+ 'multiline' : true
235
+ }
236
+ ] ,
237
+ 'object-property-newline' : 'error' ,
238
+ 'object-curly-spacing' : [
239
+ 'error' ,
240
+ 'always'
241
+ ] ,
242
+ 'one-var-declaration-per-line' : [
243
+ 'error' ,
244
+ 'always'
245
+ ] ,
246
+ 'semi-spacing' : [
247
+ 'error' ,
248
+ {
249
+ 'before' : false ,
250
+ 'after' : true
251
+ }
252
+ ] ,
253
+ 'arrow-spacing' : [
254
+ 'error' ,
255
+ {
256
+ 'before' : true ,
257
+ 'after' : true
258
+ }
259
+ ] ,
260
+ 'no-confusing-arrow' : [
261
+ 'error' ,
262
+ { 'allowParens' : false }
263
+ ] ,
264
+ 'no-const-assign' : 'error' ,
265
+ 'object-shorthand' : [
266
+ 'error' ,
267
+ 'consistent'
268
+ ] ,
269
+ 'template-curly-spacing' : [
270
+ 'error' ,
271
+ 'always'
272
+ ] ,
273
+ 'valid-jsdoc' : [
274
+ 'warn' ,
275
+ {
276
+ 'requireReturn' : false ,
277
+ 'requireReturnDescription' : false
278
+ }
279
+ ] ,
280
+
281
+ 'import/no-amd' : 'off' ,
282
+ 'import/no-dynamic-require' : 'off'
73
283
}
74
284
} ;
75
285
0 commit comments