@@ -25,28 +25,30 @@ const parseComment = (commentNode, indent) => {
25
25
const curryUtils = (
26
26
node ,
27
27
jsdoc ,
28
- tagNamePreference ,
29
- exampleCodeRegex ,
30
- rejectExampleCodeRegex ,
31
- additionalTagNames ,
32
- baseConfig ,
33
- configFile ,
34
- captionRequired ,
35
- matchingFileName ,
36
- eslintrcForExamples ,
37
- allowInlineConfig ,
38
- allowEmptyNamepaths ,
39
- reportUnusedDisableDirectives ,
40
- noDefaultExampleRules ,
41
- overrideReplacesDocs ,
42
- implementsReplacesDocs ,
43
- augmentsExtendsReplacesDocs ,
44
- allowOverrideWithoutParam ,
45
- allowImplementsWithoutParam ,
46
- allowAugmentsExtendsWithoutParam ,
47
- checkSeesForNamepaths ,
48
- forceRequireReturn ,
49
- avoidExampleOnConstructors ,
28
+ {
29
+ tagNamePreference,
30
+ exampleCodeRegex,
31
+ rejectExampleCodeRegex,
32
+ additionalTagNames,
33
+ baseConfig,
34
+ configFile,
35
+ captionRequired,
36
+ matchingFileName,
37
+ eslintrcForExamples,
38
+ allowInlineConfig,
39
+ allowEmptyNamepaths,
40
+ reportUnusedDisableDirectives,
41
+ noDefaultExampleRules,
42
+ overrideReplacesDocs,
43
+ implementsReplacesDocs,
44
+ augmentsExtendsReplacesDocs,
45
+ allowOverrideWithoutParam,
46
+ allowImplementsWithoutParam,
47
+ allowAugmentsExtendsWithoutParam,
48
+ checkSeesForNamepaths,
49
+ forceRequireReturn,
50
+ avoidExampleOnConstructors
51
+ } ,
50
52
ancestors ,
51
53
sourceCode ,
52
54
context
@@ -257,6 +259,53 @@ const curryUtils = (
257
259
return utils ;
258
260
} ;
259
261
262
+ const getSettings = ( context ) => {
263
+ const settings = { } ;
264
+
265
+ // All rules
266
+ settings . ignorePrivate = Boolean ( _ . get ( context , 'settings.jsdoc.ignorePrivate' ) ) ;
267
+
268
+ // `check-tag-names` and many require/param rules
269
+ settings . tagNamePreference = _ . get ( context , 'settings.jsdoc.tagNamePreference' ) || { } ;
270
+
271
+ // `check-tag-names` only
272
+ settings . additionalTagNames = _ . get ( context , 'settings.jsdoc.additionalTagNames' ) || { } ;
273
+
274
+ // `check-examples` only
275
+ settings . exampleCodeRegex = _ . get ( context , 'settings.jsdoc.exampleCodeRegex' ) || null ;
276
+ settings . rejectExampleCodeRegex = _ . get ( context , 'settings.jsdoc.rejectExampleCodeRegex' ) || null ;
277
+ settings . matchingFileName = _ . get ( context , 'settings.jsdoc.matchingFileName' ) || null ;
278
+ settings . baseConfig = _ . get ( context , 'settings.jsdoc.baseConfig' ) || { } ;
279
+ settings . configFile = _ . get ( context , 'settings.jsdoc.configFile' ) ;
280
+ settings . eslintrcForExamples = _ . get ( context , 'settings.jsdoc.eslintrcForExamples' ) !== false ;
281
+ settings . allowInlineConfig = _ . get ( context , 'settings.jsdoc.allowInlineConfig' ) !== false ;
282
+ settings . reportUnusedDisableDirectives = _ . get ( context , 'settings.jsdoc.reportUnusedDisableDirectives' ) !== false ;
283
+ settings . captionRequired = Boolean ( _ . get ( context , 'settings.jsdoc.captionRequired' ) ) ;
284
+ settings . noDefaultExampleRules = Boolean ( _ . get ( context , 'settings.jsdoc.noDefaultExampleRules' ) ) ;
285
+
286
+ // `require-param`, `require-description`, `require-example`, `require-returns`
287
+ settings . overrideReplacesDocs = _ . get ( context , 'settings.jsdoc.overrideReplacesDocs' ) ;
288
+ settings . implementsReplacesDocs = _ . get ( context , 'settings.jsdoc.implementsReplacesDocs' ) ;
289
+ settings . augmentsExtendsReplacesDocs = _ . get ( context , 'settings.jsdoc.augmentsExtendsReplacesDocs' ) ;
290
+
291
+ // `require-param` only (deprecated)
292
+ settings . allowOverrideWithoutParam = _ . get ( context , 'settings.jsdoc.allowOverrideWithoutParam' ) ;
293
+ settings . allowImplementsWithoutParam = _ . get ( context , 'settings.jsdoc.allowImplementsWithoutParam' ) ;
294
+ settings . allowAugmentsExtendsWithoutParam = _ . get ( context , 'settings.jsdoc.allowAugmentsExtendsWithoutParam' ) ;
295
+
296
+ // `valid-types` only
297
+ settings . allowEmptyNamepaths = _ . get ( context , 'settings.jsdoc.allowEmptyNamepaths' ) !== false ;
298
+ settings . checkSeesForNamepaths = Boolean ( _ . get ( context , 'settings.jsdoc.checkSeesForNamepaths' ) ) ;
299
+
300
+ // `require-returns` only
301
+ settings . forceRequireReturn = Boolean ( _ . get ( context , 'settings.jsdoc.forceRequireReturn' ) ) ;
302
+
303
+ // `require-example` only
304
+ settings . avoidExampleOnConstructors = Boolean ( _ . get ( context , 'settings.jsdoc.avoidExampleOnConstructors' ) ) ;
305
+
306
+ return settings ;
307
+ } ;
308
+
260
309
export {
261
310
parseComment
262
311
} ;
@@ -275,46 +324,7 @@ export default (iterator, opts = {}) => {
275
324
create ( context ) {
276
325
const sourceCode = context . getSourceCode ( ) ;
277
326
278
- // All rules
279
- const ignorePrivate = Boolean ( _ . get ( context , 'settings.jsdoc.ignorePrivate' ) ) ;
280
-
281
- // `check-tag-names` and many require/param rules
282
- const tagNamePreference = _ . get ( context , 'settings.jsdoc.tagNamePreference' ) || { } ;
283
-
284
- // `check-tag-names` only
285
- const additionalTagNames = _ . get ( context , 'settings.jsdoc.additionalTagNames' ) || { } ;
286
-
287
- // `check-examples` only
288
- const exampleCodeRegex = _ . get ( context , 'settings.jsdoc.exampleCodeRegex' ) || null ;
289
- const rejectExampleCodeRegex = _ . get ( context , 'settings.jsdoc.rejectExampleCodeRegex' ) || null ;
290
- const matchingFileName = _ . get ( context , 'settings.jsdoc.matchingFileName' ) || null ;
291
- const baseConfig = _ . get ( context , 'settings.jsdoc.baseConfig' ) || { } ;
292
- const configFile = _ . get ( context , 'settings.jsdoc.configFile' ) ;
293
- const eslintrcForExamples = _ . get ( context , 'settings.jsdoc.eslintrcForExamples' ) !== false ;
294
- const allowInlineConfig = _ . get ( context , 'settings.jsdoc.allowInlineConfig' ) !== false ;
295
- const reportUnusedDisableDirectives = _ . get ( context , 'settings.jsdoc.reportUnusedDisableDirectives' ) !== false ;
296
- const captionRequired = Boolean ( _ . get ( context , 'settings.jsdoc.captionRequired' ) ) ;
297
- const noDefaultExampleRules = Boolean ( _ . get ( context , 'settings.jsdoc.noDefaultExampleRules' ) ) ;
298
-
299
- // `require-param`, `require-description`, `require-example`, `require-returns`
300
- const overrideReplacesDocs = _ . get ( context , 'settings.jsdoc.overrideReplacesDocs' ) ;
301
- const implementsReplacesDocs = _ . get ( context , 'settings.jsdoc.implementsReplacesDocs' ) ;
302
- const augmentsExtendsReplacesDocs = _ . get ( context , 'settings.jsdoc.augmentsExtendsReplacesDocs' ) ;
303
-
304
- // `require-param` only (deprecated)
305
- const allowOverrideWithoutParam = _ . get ( context , 'settings.jsdoc.allowOverrideWithoutParam' ) ;
306
- const allowImplementsWithoutParam = _ . get ( context , 'settings.jsdoc.allowImplementsWithoutParam' ) ;
307
- const allowAugmentsExtendsWithoutParam = _ . get ( context , 'settings.jsdoc.allowAugmentsExtendsWithoutParam' ) ;
308
-
309
- // `valid-types` only
310
- const allowEmptyNamepaths = _ . get ( context , 'settings.jsdoc.allowEmptyNamepaths' ) !== false ;
311
- const checkSeesForNamepaths = Boolean ( _ . get ( context , 'settings.jsdoc.checkSeesForNamepaths' ) ) ;
312
-
313
- // `require-returns` only
314
- const forceRequireReturn = Boolean ( _ . get ( context , 'settings.jsdoc.forceRequireReturn' ) ) ;
315
-
316
- // `require-example` only
317
- const avoidExampleOnConstructors = Boolean ( _ . get ( context , 'settings.jsdoc.avoidExampleOnConstructors' ) ) ;
327
+ const settings = getSettings ( context ) ;
318
328
319
329
const checkJsdoc = ( node ) => {
320
330
const jsdocNode = getJSDocComment ( sourceCode , node ) ;
@@ -367,34 +377,13 @@ export default (iterator, opts = {}) => {
367
377
const utils = curryUtils (
368
378
node ,
369
379
jsdoc ,
370
- tagNamePreference ,
371
- exampleCodeRegex ,
372
- rejectExampleCodeRegex ,
373
- additionalTagNames ,
374
- baseConfig ,
375
- configFile ,
376
- captionRequired ,
377
- matchingFileName ,
378
- eslintrcForExamples ,
379
- allowInlineConfig ,
380
- allowEmptyNamepaths ,
381
- reportUnusedDisableDirectives ,
382
- noDefaultExampleRules ,
383
- overrideReplacesDocs ,
384
- implementsReplacesDocs ,
385
- augmentsExtendsReplacesDocs ,
386
- allowOverrideWithoutParam ,
387
- allowImplementsWithoutParam ,
388
- allowAugmentsExtendsWithoutParam ,
389
- checkSeesForNamepaths ,
390
- forceRequireReturn ,
391
- avoidExampleOnConstructors ,
380
+ settings ,
392
381
ancestors ,
393
382
sourceCode
394
383
) ;
395
384
396
385
if (
397
- ignorePrivate &&
386
+ settings . ignorePrivate &&
398
387
utils . hasTag ( 'private' )
399
388
) {
400
389
return ;
0 commit comments