1
+ // eslint.config.js (without defineConfig)
2
+ module . exports = [
3
+ {
4
+ files : [ '*.ts' , '*.tsx' ] ,
5
+ root : true ,
6
+ env : {
7
+ browser : true ,
8
+ node : true ,
9
+ es6 : true ,
10
+ jasmine : true
11
+ } ,
12
+ extends : [
13
+ 'eslint:recommended' ,
14
+ 'plugin:@typescript-eslint/eslint-recommended' ,
15
+ 'plugin:@typescript-eslint/recommended' ,
16
+ 'plugin:@typescript-eslint/recommended-requiring-type-checking' ,
17
+ 'prettier' ,
18
+ ] ,
19
+ parserOptions : {
20
+ ecmaVersion : 2020 ,
21
+ comment : true ,
22
+ project : [
23
+ './tsconfig.json' ,
24
+ './src/webview/tsconfig.json'
25
+ ] ,
26
+ sourceType : 'module'
27
+ } ,
28
+ parser : '@typescript-eslint/parser' ,
29
+ plugins : [
30
+ '@typescript-eslint' ,
31
+ 'prettier' ,
32
+ 'header' ,
33
+ 'import' ,
34
+ 'jsdoc'
35
+ ] ,
36
+ settings : {
37
+ 'import/core-modules' : [ 'vscode' ] ,
38
+ 'import/parsers' : {
39
+ '@typescript-eslint/parser' : [ '.ts' , '.tsx' ]
40
+ } ,
41
+ 'import/resolver' : {
42
+ 'typescript' : { } ,
43
+ 'node' : {
44
+ 'extensions' : [
45
+ '.js' ,
46
+ '.jsx' ,
47
+ '.tsx' ,
48
+ '.ts'
49
+ ]
50
+ }
51
+ } ,
52
+ 'import/extensions' : [
53
+ '.js' ,
54
+ '.jsx' ,
55
+ '.tsx' ,
56
+ '.ts'
57
+ ]
58
+ } ,
59
+ rules : {
60
+ 'header/header' : [ 2 , './header.js' ] ,
61
+ 'camelcase' : 2 ,
62
+ 'consistent-return' : 0 ,
63
+ 'consistent-this' : [ 1 , 'that' ] ,
64
+ 'curly' : [ 'error' , 'multi-line' ] ,
65
+ 'default-case' : [ 2 ] ,
66
+ 'dot-notation' : [ 2 ] ,
67
+ 'no-multiple-empty-lines' : [ 1 , { 'max' : 1 , 'maxEOF' : 0 } ] ,
68
+ 'eqeqeq' : [ 2 , 'allow-null' ] ,
69
+ 'guard-for-in' : 2 ,
70
+ 'import/no-unresolved' : [ 'error' ] ,
71
+ 'import/no-duplicates' : [ 'error' ] ,
72
+ 'import/prefer-default-export' : 0 ,
73
+ 'import/extensions' : [
74
+ 'error' ,
75
+ 'ignorePackages' ,
76
+ {
77
+ 'js' : 'never' ,
78
+ 'jsx' : 'never' ,
79
+ 'ts' : 'never' ,
80
+ 'tsx' : 'never'
81
+ }
82
+ ] ,
83
+ 'max-nested-callbacks' : [ 1 , 4 ] ,
84
+ 'max-classes-per-file' : [ 0 ] ,
85
+ 'no-alert' : 2 ,
86
+ 'no-caller' : 2 ,
87
+ 'no-console' : 2 ,
88
+ 'no-constant-condition' : 2 ,
89
+ 'no-debugger' : 2 ,
90
+ 'no-else-return' : [ 'error' ] ,
91
+ 'no-global-strict' : 0 ,
92
+ 'no-irregular-whitespace' : [ 'error' ] ,
93
+ 'no-param-reassign' : [ 'error' , { 'props' : false } ] ,
94
+ 'no-shadow' : 1 ,
95
+ 'no-underscore-dangle' : 0 ,
96
+ 'no-useless-constructor' : 'off' ,
97
+ '@typescript-eslint/await-thenable' : 'error' ,
98
+ '@typescript-eslint/unbound-method' : [ 'error' , { 'ignoreStatic' : true } ] ,
99
+ '@typescript-eslint/restrict-template-expressions' : 1 ,
100
+ '@typescript-eslint/no-floating-promises' : 2 ,
101
+ '@typescript-eslint/no-unsafe-return' : 1 ,
102
+ '@typescript-eslint/no-unsafe-member-access' : 1 ,
103
+ '@typescript-eslint/no-unsafe-call' : 1 ,
104
+ '@typescript-eslint/no-unsafe-assignment' : 1 ,
105
+ '@typescript-eslint/no-var-requires' : 1 ,
106
+ '@typescript-eslint/no-unsafe-argument' : 1 ,
107
+ '@typescript-eslint/no-unused-expressions' : 0 ,
108
+ 'no-var' : 2 ,
109
+ 'object-shorthand' : [ 'error' , 'properties' ] ,
110
+ 'prefer-const' : [ 'error' , { 'destructuring' : 'all' } ] ,
111
+ 'prefer-template' : 2 ,
112
+ 'radix' : 2 ,
113
+ 'no-trailing-spaces' : 'error' ,
114
+ '@typescript-eslint/prefer-regexp-exec' : 0 ,
115
+ 'quotes' : [ 'error' , 'single' ] ,
116
+ '@typescript-eslint/no-unused-vars' : [ 'error' , { 'vars' : 'local' , 'args' : 'none' } ] ,
117
+ '@typescript-eslint/no-explicit-any' : 1 ,
118
+ 'jsdoc/check-tag-names' : 'error' ,
119
+ 'jsdoc/check-param-names' : [ 'error' , { 'checkDestructured' : false } ] ,
120
+ 'jsdoc/check-alignment' : 'error' ,
121
+ 'jsdoc/no-multi-asterisks' : 'error' ,
122
+ 'jsdoc/no-types' : 'error' ,
123
+ 'jsdoc/require-param-name' : 'error' ,
124
+ 'jsdoc/require-returns-check' : 'error' ,
125
+ 'jsdoc/require-returns-description' : 'error'
126
+ }
127
+ } ,
128
+ {
129
+ files : [ '*.test.ts' ] ,
130
+ rules : {
131
+ 'no-unused-expressions' : 'off' ,
132
+ '@typescript-eslint/unbound-method' : 'off' ,
133
+ 'max-nested-callbacks' : 'off' ,
134
+ '@typescript-eslint/no-unsafe-assignment' : 'warn' ,
135
+ } ,
136
+ } ,
137
+ {
138
+ ignores : [
139
+ 'node_modules' ,
140
+ 'out' ,
141
+ '.yarn' ,
142
+ '__coverage__' ,
143
+ 'public/dist' ,
144
+ '*.min.js' ,
145
+ 'public/lib' ,
146
+ 'Godeps' ,
147
+ 'test-resources' ,
148
+ 'test/sandbox-registration' ,
149
+ // vendored from https://github.com/IonicaBizau/git-url-parse, see https://github.com/IonicaBizau/git-url-parse/pull/159
150
+ 'src/util/gitParse.ts'
151
+ ] // Files or directories to ignore
152
+ }
153
+ ] ;
0 commit comments