@hg-ts/linter 0.5.8 → 0.5.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/eslint.config.mjs +0 -620
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hg-ts/linter",
3
- "version": "0.5.8",
3
+ "version": "0.5.12",
4
4
  "bin": {
5
5
  "lint-ts": "bin/lint-ts.mjs"
6
6
  },
package/eslint.config.mjs DELETED
@@ -1,620 +0,0 @@
1
- import stylisticEslint from '@stylistic/eslint-plugin';
2
- import globals from 'globals';
3
- import tsEslint from 'typescript-eslint';
4
-
5
- /**
6
- * @type {Linter.Config['rules']}
7
- */
8
- const commonRules = {
9
- 'for-direction': 'error',
10
- 'getter-return': [
11
- 'error',
12
- {
13
- 'allowImplicit': true,
14
- },
15
- ],
16
- 'no-async-promise-executor': 'error',
17
- 'no-await-in-loop': 'off',
18
- 'no-compare-neg-zero': 'error',
19
- 'no-cond-assign': 'error',
20
- 'no-console': 'warn',
21
- 'no-constant-condition': 'error',
22
- 'no-control-regex': 'error',
23
- 'no-debugger': 'error',
24
- 'no-dupe-args': 'error',
25
- 'no-dupe-else-if': 'error',
26
- 'no-dupe-keys': 'error',
27
- 'no-duplicate-case': 'error',
28
- 'no-empty': 'error',
29
- 'no-empty-character-class': 'error',
30
- 'no-ex-assign': 'error',
31
- 'no-extra-boolean-cast': 'error',
32
- 'no-extra-parens': 'off',
33
- 'no-extra-semi': 'error',
34
- 'no-import-assign': 'error',
35
- 'no-inner-declarations': 'error',
36
- 'no-invalid-regexp': 'error',
37
- 'no-irregular-whitespace': 'error',
38
- 'no-loss-of-precision': 'error',
39
- 'no-misleading-character-class': 'error',
40
- 'no-obj-calls': 'error',
41
- 'no-promise-executor-return': 'off',
42
- 'no-prototype-builtins': 'off',
43
- 'no-regex-spaces': 'error',
44
- 'no-setter-return': 'error',
45
- 'no-sparse-arrays': 'error',
46
- 'no-template-curly-in-string': 'error',
47
- 'no-unexpected-multiline': 'error',
48
- 'no-unreachable': 'error',
49
- 'no-unreachable-loop': 'error',
50
- 'no-unsafe-finally': 'error',
51
- 'no-unsafe-negation': 'error',
52
- 'no-unsafe-optional-chaining': [
53
- 'error',
54
- {
55
- 'disallowArithmeticOperators': true,
56
- },
57
- ],
58
- 'no-useless-backreference': 'error',
59
- 'use-isnan': 'error',
60
- 'valid-typeof': 'error',
61
- 'accessor-pairs': 'error',
62
- 'array-callback-return': [
63
- 'error',
64
- {
65
- 'checkForEach': false,
66
- },
67
- ],
68
- 'block-scoped-var': 'error',
69
- 'class-methods-use-this': 'off',
70
- 'complexity': 'warn',
71
- 'consistent-return': 'error',
72
- 'curly': 'error',
73
- 'default-case': 'error',
74
- 'default-case-last': 'error',
75
- 'default-param-last': 'error',
76
- 'dot-location': [
77
- 'error',
78
- 'property',
79
- ],
80
- 'dot-notation': 'off',
81
- 'eqeqeq': 'error',
82
- 'grouped-accessor-pairs': [
83
- 'error',
84
- 'getBeforeSet',
85
- ],
86
- 'guard-for-in': 'off',
87
- 'max-classes-per-file': 'error',
88
- 'no-alert': 'error',
89
- 'no-caller': 'error',
90
- 'no-case-declarations': 'error',
91
- 'no-constructor-return': 'error',
92
- 'no-div-regex': 'error',
93
- 'no-else-return': 'error',
94
- 'no-empty-function': 'off',
95
- 'no-empty-pattern': 'error',
96
- 'no-eq-null': 'error',
97
- 'no-eval': 'error',
98
- 'no-extend-native': 'error',
99
- 'no-extra-bind': 'error',
100
- 'no-extra-label': 'error',
101
- 'no-fallthrough': 'error',
102
- 'no-floating-decimal': 'error',
103
- 'no-global-assign': 'error',
104
- 'no-implicit-coercion': [
105
- 'error',
106
- {
107
- 'allow': [
108
- '!!',
109
- ],
110
- },
111
- ],
112
- 'no-implicit-globals': 'error',
113
- 'no-implied-eval': 'error',
114
- 'no-invalid-this': 'error',
115
- 'no-iterator': 'error',
116
- 'no-labels': 'error',
117
- 'no-lone-blocks': 'error',
118
- 'no-loop-func': 'error',
119
- 'no-magic-numbers': 'off',
120
- 'no-multi-spaces': 'error',
121
- 'no-multi-str': 'error',
122
- 'no-new': 'error',
123
- 'no-new-func': 'error',
124
- 'no-new-wrappers': 'error',
125
- 'no-nonoctal-decimal-escape': 'error',
126
- 'no-octal': 'error',
127
- 'no-octal-escape': 'error',
128
- 'no-param-reassign': 'error',
129
- 'no-proto': 'error',
130
- 'no-redeclare': 'error',
131
- 'no-restricted-properties': 'off',
132
- 'no-return-assign': 'error',
133
- 'no-return-await': 'error',
134
- 'no-script-url': 'error',
135
- 'no-self-assign': 'error',
136
- 'no-self-compare': 'error',
137
- 'no-sequences': 'error',
138
- 'no-throw-literal': 'error',
139
- 'no-unmodified-loop-condition': 'error',
140
- 'no-unused-expressions': 'error',
141
- 'no-unused-labels': 'error',
142
- 'no-useless-call': 'error',
143
- 'no-useless-catch': 'error',
144
- 'no-useless-concat': 'error',
145
- 'no-useless-escape': 'error',
146
- 'no-useless-return': 'error',
147
- 'no-void': 'error',
148
- 'no-warning-comments': 'off',
149
- 'no-with': 'error',
150
- 'prefer-promise-reject-errors': 'error',
151
- 'prefer-regex-literals': 'error',
152
- 'radix': 'error',
153
- 'require-await': 'off',
154
- 'require-unicode-regexp': 'error',
155
- 'vars-on-top': 'error',
156
- 'yoda': 'error',
157
- 'init-declarations': 'off',
158
- 'no-delete-var': 'error',
159
- 'no-label-var': 'error',
160
- 'no-restricted-globals': 'off',
161
- 'no-shadow': 'off',
162
- 'no-shadow-restricted-names': 'error',
163
- 'no-undef': 'off',
164
- 'no-undef-init': 'error',
165
- 'no-undefined': 'error',
166
- 'no-unused-vars': 'off',
167
- 'strict': 'off',
168
- 'no-use-before-define': 'off',
169
- 'array-bracket-newline': [
170
- 'error',
171
- {
172
- 'multiline': true,
173
- },
174
- ],
175
- 'array-bracket-spacing': 'error',
176
- 'array-element-newline': [
177
- 'error',
178
- 'consistent',
179
- ],
180
- 'block-spacing': 'error',
181
- 'brace-style': 'error',
182
- 'camelcase': [
183
- 'error',
184
- {
185
- 'ignoreDestructuring': true,
186
- 'ignoreImports': true,
187
- 'ignoreGlobals': true,
188
- },
189
- ],
190
- 'capitalized-comments': [
191
- 'error',
192
- 'always',
193
- {
194
- ignorePattern: 'v8\ ignore',
195
- },
196
- ],
197
- 'comma-dangle': [
198
- 'error',
199
- 'always-multiline',
200
- ],
201
- 'comma-spacing': 'error',
202
- 'comma-style': 'error',
203
- 'computed-property-spacing': 'error',
204
- 'consistent-this': 'off',
205
- 'eol-last': 'error',
206
- 'func-call-spacing': 'error',
207
- 'func-name-matching': 'error',
208
- 'func-names': 'off',
209
- 'func-style': [
210
- 'error',
211
- 'declaration',
212
- {
213
- 'allowArrowFunctions': true,
214
- },
215
- ],
216
- 'function-call-argument-newline': [
217
- 'error',
218
- 'consistent',
219
- ],
220
- 'function-paren-newline': 'off',
221
- 'id-denylist': 'off',
222
- 'id-length': 'off',
223
- 'id-match': 'off',
224
- 'implicit-arrow-linebreak': 'error',
225
- 'indent': [
226
- 'error',
227
- 'tab',
228
- ],
229
- 'jsx-quotes': 'error',
230
- 'key-spacing': 'error',
231
- 'keyword-spacing': 'error',
232
- 'line-comment-position': 'error',
233
- 'linebreak-style': 'error',
234
- 'lines-around-comment': 'off',
235
- 'lines-between-class-members': 'off',
236
- 'max-depth': [
237
- 'error',
238
- 3,
239
- ],
240
- 'max-len': [
241
- 'error',
242
- {
243
- 'code': 120,
244
- 'tabWidth': 2,
245
- 'comments': 150,
246
- 'ignoreStrings': true,
247
- },
248
- ],
249
- 'max-lines': [
250
- 'error',
251
- {
252
- 'max': 500,
253
- 'skipBlankLines': false,
254
- 'skipComments': false,
255
- },
256
- ],
257
- 'max-lines-per-function': [
258
- 'error',
259
- 50,
260
- ],
261
- 'max-nested-callbacks': [
262
- 'error',
263
- 3,
264
- ],
265
- 'max-params': [
266
- 'error',
267
- 3,
268
- ],
269
- 'max-statements': 'off',
270
- 'max-statements-per-line': 'error',
271
- 'multiline-comment-style': 'error',
272
- 'multiline-ternary': [
273
- 'error',
274
- 'always-multiline',
275
- ],
276
- 'new-cap': 'off',
277
- 'new-parens': 'error',
278
- 'newline-per-chained-call': [
279
- 'error',
280
- { ignoreChainWithDepth: 3 },
281
- ],
282
- 'no-array-constructor': 'error',
283
- 'no-bitwise': 'error',
284
- 'no-continue': 'off',
285
- 'no-inline-comments': 'error',
286
- 'no-lonely-if': 'error',
287
- 'no-mixed-operators': 'error',
288
- 'no-mixed-spaces-and-tabs': 'error',
289
- 'no-multi-assign': 'error',
290
- 'no-multiple-empty-lines': [
291
- 'error',
292
- {
293
- 'max': 2,
294
- 'maxEOF': 0,
295
- 'maxBOF': 0,
296
- },
297
- ],
298
- 'no-negated-condition': 'error',
299
- 'no-nested-ternary': 'error',
300
- 'no-new-object': 'error',
301
- 'no-plusplus': 'off',
302
- 'no-restricted-syntax': 'off',
303
- 'no-tabs': [
304
- 'error',
305
- {
306
- 'allowIndentationTabs': true,
307
- },
308
- ],
309
- 'no-ternary': 'off',
310
- 'no-trailing-spaces': 'error',
311
- 'no-underscore-dangle': 'error',
312
- 'no-unneeded-ternary': 'error',
313
- 'no-whitespace-before-property': 'error',
314
- 'nonblock-statement-body-position': 'error',
315
- 'object-curly-newline': [
316
- 'error',
317
- {
318
- 'multiline': true,
319
- },
320
- ],
321
- 'object-curly-spacing': [
322
- 'error',
323
- 'always',
324
- ],
325
- 'object-property-newline': [
326
- 'error',
327
- {
328
- 'allowAllPropertiesOnSameLine': true,
329
- },
330
- ],
331
- 'one-var': [
332
- 'error',
333
- 'never',
334
- ],
335
- 'one-var-declaration-per-line': 'error',
336
- 'operator-assignment': 'error',
337
- 'operator-linebreak': [
338
- 'error',
339
- 'before',
340
- {
341
- 'overrides': {
342
- '=': 'after',
343
- },
344
- },
345
- ],
346
- 'padded-blocks': [
347
- 'error',
348
- 'never',
349
- ],
350
- 'padding-line-between-statements': 'warn',
351
- 'prefer-exponentiation-operator': 'error',
352
- 'prefer-object-spread': 'error',
353
- 'quote-props': [
354
- 'error',
355
- 'consistent-as-needed',
356
- ],
357
- 'quotes': [
358
- 'error',
359
- 'single',
360
- ],
361
- 'semi': 'error',
362
- 'semi-spacing': 'error',
363
- 'semi-style': 'error',
364
- 'sort-keys': 'off',
365
- 'sort-vars': 'error',
366
- 'space-before-blocks': 'error',
367
- 'space-before-function-paren': [
368
- 'error',
369
- 'never',
370
- ],
371
- 'space-in-parens': 'error',
372
- 'space-infix-ops': 'error',
373
- 'space-unary-ops': 'error',
374
- 'spaced-comment': 'error',
375
- 'switch-colon-spacing': 'error',
376
- 'template-tag-spacing': 'error',
377
- 'unicode-bom': 'error',
378
- 'wrap-regex': 'error',
379
- 'arrow-body-style': 'error',
380
- 'arrow-parens': [
381
- 'error',
382
- 'as-needed',
383
- ],
384
- 'arrow-spacing': 'error',
385
- 'constructor-super': 'error',
386
- 'generator-star-spacing': 'error',
387
- 'no-class-assign': 'error',
388
- 'no-confusing-arrow': 'error',
389
- 'no-const-assign': 'error',
390
- 'no-dupe-class-members': 'off',
391
- 'no-duplicate-imports': 'error',
392
- 'no-new-symbol': 'error',
393
- 'no-restricted-exports': 'off',
394
- 'no-restricted-imports': 'off',
395
- 'no-this-before-super': 'error',
396
- 'no-useless-computed-key': 'error',
397
- 'no-useless-constructor': 'off',
398
- 'no-useless-rename': 'error',
399
- 'no-var': 'error',
400
- 'object-shorthand': 'error',
401
- 'prefer-arrow-callback': 'error',
402
- 'prefer-const': 'error',
403
- 'prefer-destructuring': 'error',
404
- 'prefer-numeric-literals': 'error',
405
- 'prefer-rest-params': 'error',
406
- 'prefer-spread': 'error',
407
- 'prefer-template': 'error',
408
- 'require-yield': 'error',
409
- 'rest-spread-spacing': 'error',
410
- 'sort-imports': 'off',
411
- 'symbol-description': 'error',
412
- 'template-curly-spacing': 'error',
413
- 'yield-star-spacing': 'error',
414
- 'wrap-iife': 'off',
415
- 'require-jsdoc': 'off',
416
- 'no-func-assign': 'error',
417
- };
418
-
419
- /**
420
- * @type {Linter.Config['rules']}
421
- */
422
- const typescriptRules = {
423
- '@typescript/adjacent-overload-signatures': 'error',
424
- '@typescript/array-type': 'error',
425
- '@typescript/await-thenable': 'error',
426
- '@typescript/ban-ts-comment': 'off',
427
- '@typescript/ban-tslint-comment': 'error',
428
- '@typescript/ban-types': 'off',
429
- '@typescript/class-literal-property-style': [
430
- 'error',
431
- 'fields',
432
- ],
433
- '@typescript/consistent-indexed-object-style': [
434
- 'error',
435
- 'record',
436
- ],
437
- '@typescript/consistent-type-assertions': [
438
- 'error',
439
- {
440
- 'assertionStyle': 'as',
441
- },
442
- ],
443
- '@typescript/consistent-type-definitions': [
444
- 'error',
445
- 'type',
446
- ],
447
- '@typescript/consistent-type-imports': 'off',
448
- '@typescript/explicit-function-return-type': 'error',
449
- '@typescript/explicit-member-accessibility': 'error',
450
- '@typescript/explicit-module-boundary-types': 'error',
451
- '@typescript/member-ordering': [
452
- 'error',
453
- {
454
- 'default': [
455
- 'signature',
456
- 'public-decorated-field',
457
- 'public-instance-field',
458
- 'protected-decorated-field',
459
- 'protected-instance-field',
460
- 'private-decorated-field',
461
- 'private-instance-field',
462
- 'public-static-field',
463
- 'protected-static-field',
464
- 'private-static-field',
465
- 'public-abstract-field',
466
- 'protected-abstract-field',
467
- 'public-constructor',
468
- 'protected-constructor',
469
- 'private-constructor',
470
- 'public-decorated-method',
471
- 'public-instance-method',
472
- 'public-abstract-method',
473
- 'public-static-method',
474
- 'protected-decorated-method',
475
- 'protected-instance-method',
476
- 'protected-abstract-method',
477
- 'protected-static-method',
478
- 'private-decorated-method',
479
- 'private-instance-method',
480
- 'private-static-method',
481
- ],
482
- },
483
- ],
484
- '@typescript/method-signature-style': [
485
- 'error',
486
- 'method',
487
- ],
488
- '@typescript/naming-convention': [
489
- 'off',
490
- ],
491
- '@typescript/no-base-to-string': 'error',
492
- '@typescript/no-confusing-non-null-assertion': 'error',
493
- '@typescript/no-confusing-void-expression': [
494
- 'error',
495
- {
496
- 'ignoreArrowShorthand': true,
497
- },
498
- ],
499
- '@typescript/no-dynamic-delete': 'error',
500
- '@typescript/no-empty-interface': 'error',
501
- '@typescript/no-explicit-any': 'off',
502
- '@typescript/no-extraneous-class': 'off',
503
- '@typescript/no-floating-promises': 'error',
504
- '@typescript/no-for-in-array': 'error',
505
- '@typescript/no-inferrable-types': 'error',
506
- '@typescript/no-invalid-void-type': 'error',
507
- '@typescript/no-misused-new': 'error',
508
- '@typescript/no-misused-promises': 'error',
509
- '@typescript/no-extra-non-null-assertion': 'error',
510
- '@typescript/no-namespace': 'off',
511
- '@typescript/no-non-null-asserted-optional-chain': 'error',
512
- '@typescript/no-non-null-assertion': 'off',
513
- '@typescript/parameter-properties': [
514
- 'error',
515
- {
516
- 'allow': [
517
- 'private readonly',
518
- 'protected readonly',
519
- ],
520
- },
521
- ],
522
- '@typescript/no-require-imports': 'error',
523
- '@typescript/no-this-alias': 'error',
524
- '@typescript/no-type-alias': 'off',
525
- '@typescript/no-unnecessary-type-assertion': 'error',
526
- '@typescript/no-unnecessary-boolean-literal-compare': 'error',
527
- '@typescript/no-unnecessary-condition': 'error',
528
- '@typescript/no-unnecessary-qualifier': 'error',
529
- '@typescript/no-unnecessary-type-arguments': 'error',
530
- '@typescript/no-unnecessary-type-constraint': 'error',
531
- '@typescript/no-unsafe-assignment': 'off',
532
- '@typescript/no-unsafe-call': 'off',
533
- '@typescript/no-unsafe-member-access': 'off',
534
- '@typescript/no-unsafe-return': 'off',
535
- '@typescript/no-var-requires': 'error',
536
- '@typescript/non-nullable-type-assertion-style': 'error',
537
- '@typescript/prefer-as-const': 'error',
538
- '@typescript/prefer-enum-initializers': 'error',
539
- '@typescript/prefer-for-of': 'error',
540
- '@typescript/prefer-function-type': 'error',
541
- '@typescript/prefer-includes': 'error',
542
- '@typescript/prefer-literal-enum-member': 'error',
543
- '@typescript/prefer-namespace-keyword': 'error',
544
- '@typescript/prefer-optional-chain': 'error',
545
- '@typescript/prefer-readonly': 'error',
546
- '@typescript/prefer-readonly-parameter-types': 'off',
547
- '@typescript/prefer-reduce-type-parameter': 'error',
548
- '@typescript/prefer-regexp-exec': 'error',
549
- '@typescript/prefer-string-starts-ends-with': 'error',
550
- '@typescript/prefer-ts-expect-error': 'error',
551
- '@typescript/promise-function-async': 'error',
552
- '@typescript/require-array-sort-compare': [
553
- 'error',
554
- {
555
- 'ignoreStringArrays': true,
556
- },
557
- ],
558
- '@typescript/restrict-plus-operands': 'error',
559
- '@typescript/restrict-template-expressions': 'error',
560
- '@typescript/strict-boolean-expressions': 'off',
561
- '@typescript/switch-exhaustiveness-check': [
562
- 'error',
563
- { considerDefaultExhaustiveForUnions: true },
564
- ],
565
- '@typescript/triple-slash-reference': 'error',
566
- '@typescript/typedef': 'error',
567
- '@typescript/unbound-method': 'error',
568
- '@typescript/unified-signatures': 'error',
569
- };
570
-
571
- /**
572
- * @type {Linter.FlatConfig['rules']}
573
- */
574
- const stylisticRules = {
575
- '@stylistic/member-delimiter-style': 'error',
576
- '@stylistic/type-annotation-spacing': 'error',
577
- };
578
-
579
- /**
580
- * @type {Linter.FlatConfig['plugins']}
581
- */
582
- const plugins = { '@typescript': tsEslint.plugin, '@stylistic': stylisticEslint };
583
-
584
- /**
585
- * @type {Linter.FlatConfig}
586
- */
587
- const config = {
588
- plugins,
589
- files: [
590
- '**/*.ts',
591
- '**/*.tsx',
592
- ],
593
- linterOptions: {
594
- reportUnusedDisableDirectives: 'warn',
595
- },
596
- ignores: [ '**/*.d.ts' ],
597
- languageOptions: {
598
- parser: tsEslint.parser,
599
- ecmaVersion: 'latest',
600
- sourceType: 'module',
601
- globals: {
602
- ...globals.browser,
603
- ...globals.node,
604
- },
605
- parserOptions: {
606
- project: './tsconfig.json',
607
- lib: [ 'ESNext' ],
608
- ecmaFeatures: {
609
- jsx: true,
610
- },
611
- },
612
- },
613
- rules: {
614
- ...commonRules,
615
- ...typescriptRules,
616
- ...stylisticRules,
617
- },
618
- };
619
-
620
- export default config;