@prowise/eslint-config-linting-rules 0.0.1
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.
- package/.eslintrc.js +7 -0
- package/README.md +19 -0
- package/backend.js +16 -0
- package/frontend.js +24 -0
- package/index.js +44 -0
- package/package.json +1 -0
- package/src/rules/base-rules.js +1957 -0
- package/src/rules/plugin-import-rules.js +315 -0
- package/src/rules/plugin-jsdoc-rules.js +321 -0
- package/src/rules/plugin-jsx-a11y-rules.js +294 -0
- package/src/rules/plugin-node-rules.js +61 -0
- package/src/rules/plugin-react-hooks-rules.js +23 -0
- package/src/rules/plugin-react-rules.js +765 -0
- package/src/rules/plugin-typescript-rules.js +928 -0
- package/typescript.js +18 -0
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
rules: {
|
|
3
|
+
/**
|
|
4
|
+
* Ensure default import coupled with default export
|
|
5
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/default.md.
|
|
6
|
+
*/
|
|
7
|
+
"import/default": "off",
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Dynamic imports require a leading comment with a webpackChunkName
|
|
11
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/dynamic-import-chunkname.md.
|
|
12
|
+
*/
|
|
13
|
+
"import/dynamic-import-chunkname": ["off", { importFunctions: [], webpackChunknameFormat: "[0-9a-zA-Z-_/.]+" }],
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Disallow invalid exports, e.g. Multiple defaults
|
|
17
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/export.md.
|
|
18
|
+
*/
|
|
19
|
+
"import/export": "error",
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* This rule enforces that all exports are declared at the bottom of the file.
|
|
23
|
+
* Https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/exports-last.md.
|
|
24
|
+
*/
|
|
25
|
+
"import/exports-last": "off",
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Ensure consistent use of file extension within the import path
|
|
29
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/extensions.md.
|
|
30
|
+
*/
|
|
31
|
+
"import/extensions": ["error", "ignorePackages", { js: "never", mjs: "never", jsx: "never" }],
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Disallow non-import statements appearing before import statements
|
|
35
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/first.md.
|
|
36
|
+
*/
|
|
37
|
+
"import/first": "error",
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Reports when named exports are not grouped together in a single export declaration
|
|
41
|
+
* or when multiple assignments to CommonJS module.exports or exports object are present
|
|
42
|
+
* in a single file.
|
|
43
|
+
* Https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/group-exports.md.
|
|
44
|
+
*/
|
|
45
|
+
"import/group-exports": "off",
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Forbid modules to have too many dependencies
|
|
49
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/group-exports.md.
|
|
50
|
+
*/
|
|
51
|
+
"import/max-dependencies": ["off", { max: 10 }],
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Ensure named imports coupled with named exports
|
|
55
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/named.md#.
|
|
56
|
+
*/
|
|
57
|
+
"import/named": "error",
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Enforces names exist at the time they are dereferenced, when imported as a full namespace
|
|
61
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/namespace.md.
|
|
62
|
+
*/
|
|
63
|
+
"import/namespace": "off",
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Require a newline after the last import/require in a group
|
|
67
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/newline-after-import.md.
|
|
68
|
+
*/
|
|
69
|
+
"import/newline-after-import": "error",
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Forbid import of modules using absolute paths
|
|
73
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-absolute-path.md.
|
|
74
|
+
*/
|
|
75
|
+
"import/no-absolute-path": "error",
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Disallow AMD require/define
|
|
79
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-amd.md.
|
|
80
|
+
*/
|
|
81
|
+
"import/no-amd": "error",
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Reports if a module"s default export is unnamed
|
|
85
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-anonymous-default-export.md.
|
|
86
|
+
*/
|
|
87
|
+
"import/no-anonymous-default-export": [
|
|
88
|
+
"off",
|
|
89
|
+
{
|
|
90
|
+
allowArray: false,
|
|
91
|
+
allowArrowFunction: false,
|
|
92
|
+
allowAnonymousClass: false,
|
|
93
|
+
allowAnonymousFunction: false,
|
|
94
|
+
allowLiteral: false,
|
|
95
|
+
allowObject: false,
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Disallow require()
|
|
101
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-commonjs.md.
|
|
102
|
+
*/
|
|
103
|
+
"import/no-commonjs": "off",
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Forbid cyclical dependencies between modules
|
|
107
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-cycle.md.
|
|
108
|
+
*/
|
|
109
|
+
"import/no-cycle": ["error", { maxDepth: "∞" }],
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Forbid default exports. This is a terrible rule, do not use it.
|
|
113
|
+
* Https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-default-export.md.
|
|
114
|
+
*/
|
|
115
|
+
"import/no-default-export": "off",
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Disallow use of jsdoc-marked-deprecated imports
|
|
119
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-deprecated.md.
|
|
120
|
+
*/
|
|
121
|
+
"import/no-deprecated": "off",
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Disallow duplicate imports
|
|
125
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-duplicates.md.
|
|
126
|
+
*/
|
|
127
|
+
"import/no-duplicates": "error",
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Forbid require() calls with expressions
|
|
131
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-dynamic-require.md.
|
|
132
|
+
*/
|
|
133
|
+
"import/no-dynamic-require": "error",
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Forbid the use of extraneous packages
|
|
137
|
+
* paths are treated both as absolute paths, and relative to process.cwd()
|
|
138
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-extraneous-dependencies.md.
|
|
139
|
+
*/
|
|
140
|
+
"import/no-extraneous-dependencies": [
|
|
141
|
+
"off",
|
|
142
|
+
{
|
|
143
|
+
devDependencies: [
|
|
144
|
+
"test/**", // tape, common npm pattern
|
|
145
|
+
"tests/**", // also common npm pattern
|
|
146
|
+
"spec/**", // mocha, rspec-like pattern
|
|
147
|
+
"**/__tests__/**", // jest pattern
|
|
148
|
+
"**/__mocks__/**", // jest pattern
|
|
149
|
+
"test.{js,jsx}", // repos with a single test file
|
|
150
|
+
"test-*.{js,jsx}", // repos with multiple top-level test files
|
|
151
|
+
"**/*{.,_}{test,spec}.{js,jsx}", // tests where the extension or filename suffix denotes that it is a test
|
|
152
|
+
"**/jest.config.js", // jest config
|
|
153
|
+
"**/jest.setup.js", // jest setup
|
|
154
|
+
"**/vue.config.js", // vue-cli config
|
|
155
|
+
"**/webpack.config.js", // webpack config
|
|
156
|
+
"**/webpack.config.*.js", // webpack config
|
|
157
|
+
"**/rollup.config.js", // rollup config
|
|
158
|
+
"**/rollup.config.*.js", // rollup config
|
|
159
|
+
"**/gulpfile.js", // gulp config
|
|
160
|
+
"**/gulpfile.*.js", // gulp config
|
|
161
|
+
"**/Gruntfile{,.js}", // grunt config
|
|
162
|
+
"**/protractor.conf.js", // protractor config
|
|
163
|
+
"**/protractor.conf.*.js", // protractor config
|
|
164
|
+
"**/karma.conf.js", // karma config
|
|
165
|
+
"**/.eslintrc.js", // eslint config
|
|
166
|
+
],
|
|
167
|
+
optionalDependencies: false,
|
|
168
|
+
},
|
|
169
|
+
],
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Reports the use of import declarations with CommonJS exports in any module except for the main module.
|
|
173
|
+
* Https://github.com/benmosher/eslint-plugin-import/blob/1012eb951767279ce3b540a4ec4f29236104bb5b/docs/rules/no-import-module-exports.md.
|
|
174
|
+
*/
|
|
175
|
+
"import/no-import-module-exports": ["error", { exceptions: [] }],
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Prevent importing the submodules of other modules
|
|
179
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-internal-modules.md.
|
|
180
|
+
*/
|
|
181
|
+
"import/no-internal-modules": ["off", { allow: [] }],
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Forbid mutable exports
|
|
185
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-mutable-exports.md.
|
|
186
|
+
*/
|
|
187
|
+
"import/no-mutable-exports": "error",
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Do not allow a default import name to match a named export
|
|
191
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-named-as-default.md.
|
|
192
|
+
*/
|
|
193
|
+
"import/no-named-as-default": "error",
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Warn on accessing default export property names that are also named exports
|
|
197
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-named-as-default-member.md.
|
|
198
|
+
*/
|
|
199
|
+
"import/no-named-as-default-member": "error",
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Prevent importing the default as if it were named
|
|
203
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-named-default.md.
|
|
204
|
+
*/
|
|
205
|
+
"import/no-named-default": "error",
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Prohibit named exports. This is a terrible rule, do not use it.
|
|
209
|
+
* Https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-named-export.md.
|
|
210
|
+
*/
|
|
211
|
+
"import/no-named-export": "off",
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Disallow namespace imports
|
|
215
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-namespace.md.
|
|
216
|
+
*/
|
|
217
|
+
"import/no-namespace": "off",
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* No Node.js builtin modules
|
|
221
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-nodejs-modules.md.
|
|
222
|
+
*/
|
|
223
|
+
"import/no-nodejs-modules": "off",
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Use this rule to prevent importing packages through relative paths.
|
|
227
|
+
* Https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-relative-packages.md.
|
|
228
|
+
*/
|
|
229
|
+
"import/no-relative-packages": "error",
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Use this rule to prevent imports to folders in relative parent paths.
|
|
233
|
+
* Https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-relative-parent-imports.md.
|
|
234
|
+
*/
|
|
235
|
+
"import/no-relative-parent-imports": "off",
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Restrict which files can be imported in a given folder
|
|
239
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-restricted-paths.md.
|
|
240
|
+
*/
|
|
241
|
+
"import/no-restricted-paths": "off",
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Forbid a module from importing itself
|
|
245
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-self-import.md.
|
|
246
|
+
*/
|
|
247
|
+
"import/no-self-import": "error",
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Prevent unassigned imports
|
|
251
|
+
* importing for side effects is perfectly acceptable, if you need side effects.
|
|
252
|
+
* Https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-unassigned-import.md.
|
|
253
|
+
*/
|
|
254
|
+
"import/no-unassigned-import": "off",
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Ensure imports point to files/modules that can be resolved
|
|
258
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-unresolved.md.
|
|
259
|
+
*/
|
|
260
|
+
"import/no-unresolved": ["error", { commonjs: true, caseSensitive: true }],
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Reports modules without any exports, or with unused exports
|
|
264
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-unused-modules.md
|
|
265
|
+
* TODO: enable once it supports CJS.
|
|
266
|
+
*/
|
|
267
|
+
"import/no-unused-modules": [
|
|
268
|
+
"off",
|
|
269
|
+
{
|
|
270
|
+
ignoreExports: [],
|
|
271
|
+
missingExports: true,
|
|
272
|
+
unusedExports: true,
|
|
273
|
+
},
|
|
274
|
+
],
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Ensures that there are no useless path segments
|
|
278
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-useless-path-segments.md.
|
|
279
|
+
*/
|
|
280
|
+
"import/no-useless-path-segments": ["error", { commonjs: true }],
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Forbid Webpack loader syntax in imports
|
|
284
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-webpack-loader-syntax.md.
|
|
285
|
+
*/
|
|
286
|
+
"import/no-webpack-loader-syntax": "error",
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Ensure absolute imports are above relative imports and that unassigned imports are ignored
|
|
290
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/order.md.
|
|
291
|
+
*/
|
|
292
|
+
"import/order": [
|
|
293
|
+
"error",
|
|
294
|
+
{
|
|
295
|
+
groups: [["builtin", "external", "internal"]],
|
|
296
|
+
alphabetize: { order: "asc", caseInsensitive: true },
|
|
297
|
+
},
|
|
298
|
+
],
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Require modules with a single export to use a default export
|
|
302
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/prefer-default-export.md.
|
|
303
|
+
*/
|
|
304
|
+
"import/prefer-default-export": "error",
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Warn if a module could be mistakenly parsed as a script by a consumer
|
|
308
|
+
* leveraging Unambiguous JavaScript Grammar
|
|
309
|
+
* https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/unambiguous.md
|
|
310
|
+
* this should not be enabled until this proposal has at least been *presented* to TC39.
|
|
311
|
+
* At the moment, it"s not a thing.
|
|
312
|
+
*/
|
|
313
|
+
"import/unambiguous": "off",
|
|
314
|
+
},
|
|
315
|
+
};
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
/*
|
|
3
|
+
* ✅ recommended
|
|
4
|
+
* 🔧 fixable
|
|
5
|
+
* 💡 has suggestion
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
plugin: ["jsdoc"],
|
|
9
|
+
|
|
10
|
+
rules: {
|
|
11
|
+
/**
|
|
12
|
+
* Checks that `@access` tags have a valid value ✅
|
|
13
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-access.
|
|
14
|
+
*/
|
|
15
|
+
"jsdoc/check-access": "warn",
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Reports invalid alignment of JSDoc block asterisks ✅
|
|
19
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-alignment.
|
|
20
|
+
*/
|
|
21
|
+
"jsdoc/check-alignment": "warn",
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules
|
|
25
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-examples.
|
|
26
|
+
*/
|
|
27
|
+
"jsdoc/check-examples": "off",
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Reports invalid padding inside JSDoc blocks
|
|
31
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-indentation.
|
|
32
|
+
*/
|
|
33
|
+
"jsdoc/check-indentation": "warn",
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Reports invalid alignment of JSDoc block lines
|
|
37
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-line-alignment.
|
|
38
|
+
*/
|
|
39
|
+
"jsdoc/check-line-alignment": "warn",
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Ensures that parameter names in JSDoc match those in the function declaration ✅
|
|
43
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-param-names.
|
|
44
|
+
*/
|
|
45
|
+
"jsdoc/check-param-names": "warn",
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Ensures that property names in JSDoc are not duplicated on the same block and that nested
|
|
49
|
+
* properties have defined roots ✅
|
|
50
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-property-names.
|
|
51
|
+
*/
|
|
52
|
+
"jsdoc/check-property-names": "warn",
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Reports against syntax not valid for the mode (e.g., Google Closure Compiler in non-Closure mode)
|
|
56
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-syntax.
|
|
57
|
+
*/
|
|
58
|
+
"jsdoc/check-syntax": "warn",
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Reports invalid block tag names ✅
|
|
62
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-tag-names.
|
|
63
|
+
*/
|
|
64
|
+
"jsdoc/check-tag-names": "warn",
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Reports invalid types ✅
|
|
68
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-types.
|
|
69
|
+
*/
|
|
70
|
+
"jsdoc/check-types": "warn",
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* This rule checks the values for a handful of tags: `@version`, `@since`, `@license` and `@author` ✅
|
|
74
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-values.
|
|
75
|
+
*/
|
|
76
|
+
"jsdoc/check-values": "warn",
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Expects specific tags to be empty of any content ✅
|
|
80
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-empty-tags.
|
|
81
|
+
*/
|
|
82
|
+
"jsdoc/empty-tags": "warn",
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Reports an issue with any non-constructor function using `@implements ✅
|
|
86
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-implements-on-classes.
|
|
87
|
+
*/
|
|
88
|
+
"jsdoc/implements-on-classes": "warn",
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Enforces a regular expression pattern on descriptions
|
|
92
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-match-description.
|
|
93
|
+
*/
|
|
94
|
+
"jsdoc/match-description": "warn",
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks ✅
|
|
98
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-multiline-blocks.
|
|
99
|
+
*/
|
|
100
|
+
"jsdoc/multiline-blocks": "warn",
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Enforces a consistent padding of the block description ✅
|
|
104
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-newline-after-description.
|
|
105
|
+
*/
|
|
106
|
+
"jsdoc/newline-after-description": "warn",
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* This rule checks for multi-line-style comments which fail to meet the criteria of a jsdoc block
|
|
110
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-bad-blocks.
|
|
111
|
+
*/
|
|
112
|
+
"jsdoc/no-bad-blocks": "warn",
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* His rule reports defaults being used on the relevant portion of `@param` or `@default`
|
|
116
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-defaults.
|
|
117
|
+
*/
|
|
118
|
+
"jsdoc/no-defaults": "warn",
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Reports when certain comment structures are always expected
|
|
122
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-missing-syntax.
|
|
123
|
+
*/
|
|
124
|
+
"jsdoc/no-missing-syntax": "off",
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* ✅
|
|
128
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-multi-asterisks.
|
|
129
|
+
*/
|
|
130
|
+
"jsdoc/no-multi-asterisks": "warn",
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Reports when certain comment structures are present
|
|
134
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-restricted-syntax.
|
|
135
|
+
*/
|
|
136
|
+
"jsdoc/no-restricted-syntax": "off",
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* This rule reports types being used on `@param` or `@returns`
|
|
140
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-types.
|
|
141
|
+
*/
|
|
142
|
+
"jsdoc/no-types": "warn",
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Checks that types in jsdoc comments are defined ✅
|
|
146
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-undefined-types.
|
|
147
|
+
*/
|
|
148
|
+
"jsdoc/no-undefined-types": "warn",
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Checks that types in jsdoc comments are defined
|
|
152
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-undefined-types.
|
|
153
|
+
*/
|
|
154
|
+
"jsdoc/require-asterisk-prefix": "warn",
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Requires that all functions have a description
|
|
158
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-description.
|
|
159
|
+
*/
|
|
160
|
+
"jsdoc/require-description": "warn",
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Requires that block description, explicit `@description`, and `@param`/`@returns`
|
|
164
|
+
* tag descriptions are written in complete sentences
|
|
165
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-description-complete-sentence.
|
|
166
|
+
*/
|
|
167
|
+
"jsdoc/require-description-complete-sentence": "warn",
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Requires that all functions have examples
|
|
171
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-example.
|
|
172
|
+
*/
|
|
173
|
+
"jsdoc/require-example": "off",
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Checks that all files have one `@file`, `@fileoverview`, or `@overview` tag at the beginning of the file
|
|
177
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-file-overview.
|
|
178
|
+
*/
|
|
179
|
+
"jsdoc/require-file-overview": "off",
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Requires a hyphen before the `@param` description
|
|
183
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-hyphen-before-param-description.
|
|
184
|
+
*/
|
|
185
|
+
"jsdoc/require-hyphen-before-param-description": "off",
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Require JSDoc comments ✅
|
|
189
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-jsdoc.
|
|
190
|
+
*/
|
|
191
|
+
"jsdoc/require-jsdoc": [
|
|
192
|
+
"error",
|
|
193
|
+
{
|
|
194
|
+
publicOnly: false,
|
|
195
|
+
exemptEmptyConstructors: false,
|
|
196
|
+
checkGetters: true,
|
|
197
|
+
checkSetters: true,
|
|
198
|
+
require: {
|
|
199
|
+
ClassDeclaration: true,
|
|
200
|
+
ClassExpression: true,
|
|
201
|
+
FunctionDeclaration: true,
|
|
202
|
+
FunctionExpression: true,
|
|
203
|
+
MethodDefinition: true,
|
|
204
|
+
},
|
|
205
|
+
contexts: [
|
|
206
|
+
// @see https://ts-ast-viewer.com/#
|
|
207
|
+
"ClassProperty",
|
|
208
|
+
"FunctionDeclaration",
|
|
209
|
+
"TSTypeAliasDeclaration",
|
|
210
|
+
"VariableStatement",
|
|
211
|
+
"TSInterfaceDeclaration",
|
|
212
|
+
"TSTypeAliasDeclaration TSPropertySignature",
|
|
213
|
+
"TSInterfaceDeclaration TSPropertySignature",
|
|
214
|
+
],
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Requires that all function parameters are documented ✅
|
|
220
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param.
|
|
221
|
+
*/
|
|
222
|
+
"jsdoc/require-param": "warn",
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Requires that each `@param` tag has a `description` value ✅
|
|
226
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-description.
|
|
227
|
+
*/
|
|
228
|
+
"jsdoc/require-param-description": "warn",
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Requires that all function parameters have names ✅
|
|
232
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-name.
|
|
233
|
+
*/
|
|
234
|
+
"jsdoc/require-param-name": "warn",
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Requires that each `@param` tag has a `type` value ✅
|
|
238
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-type.
|
|
239
|
+
*/
|
|
240
|
+
"jsdoc/require-param-type": "off",
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Requires that all `@typedef` and `@namespace` tags have `@property` when their type ✅
|
|
244
|
+
* is a plain `object`, `Object`, or `PlainObject
|
|
245
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property.
|
|
246
|
+
*/
|
|
247
|
+
"jsdoc/require-property": "warn",
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Requires that each `@property` tag has a `description` value ✅
|
|
251
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property-description.
|
|
252
|
+
*/
|
|
253
|
+
"jsdoc/require-property-description": "warn",
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Requires that all function `@property` tags have names ✅
|
|
257
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property-name.
|
|
258
|
+
*/
|
|
259
|
+
"jsdoc/require-property-name": "warn",
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Requires that each `@property` tag has a `type` value ✅
|
|
263
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property-type.
|
|
264
|
+
*/
|
|
265
|
+
"jsdoc/require-property-type": "warn",
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Requires that returns are documented ✅
|
|
269
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns.
|
|
270
|
+
*/
|
|
271
|
+
"jsdoc/require-returns": "warn",
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Requires a return statement in function body if a `@returns` tag is specified in jsdoc comment ✅
|
|
275
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-check.
|
|
276
|
+
*/
|
|
277
|
+
"jsdoc/require-returns-check": "warn",
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Requires that the `@returns` tag has a `description` value ✅
|
|
281
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-description.
|
|
282
|
+
*/
|
|
283
|
+
"jsdoc/require-returns-description": "warn",
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Requires that `@returns` tag has `type` value ✅
|
|
287
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-type.
|
|
288
|
+
*/
|
|
289
|
+
"jsdoc/require-returns-type": "off",
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Requires that throw statements are documented
|
|
293
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-throws.
|
|
294
|
+
*/
|
|
295
|
+
"jsdoc/require-throws": "warn",
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Requires yields are documented ✅
|
|
299
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-yields.
|
|
300
|
+
*/
|
|
301
|
+
"jsdoc/require-yields": "warn",
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Requires a yield statement in function body if a `@yields` tag is specified in jsdoc comment ✅
|
|
305
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-yields-check.
|
|
306
|
+
*/
|
|
307
|
+
"jsdoc/require-yields-check": "warn",
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Enforces lines (or no lines) between tags ✅
|
|
311
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-tag-lines.
|
|
312
|
+
*/
|
|
313
|
+
"jsdoc/tag-lines": "warn",
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Requires all types to be valid JSDoc or Closure compiler types without syntax errors ✅
|
|
317
|
+
* https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-valid-types.
|
|
318
|
+
*/
|
|
319
|
+
"jsdoc/valid-types": "warn",
|
|
320
|
+
},
|
|
321
|
+
};
|