Skip to content

Commit f44b25e

Browse files
committed
refactor: simplify iterateJsdoc
1 parent dd61177 commit f44b25e

File tree

4 files changed

+18
-15
lines changed

4 files changed

+18
-15
lines changed

src/iterateJsdoc.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ export {
389389
* @param {{
390390
* meta: any,
391391
* contextDefaults?: true | string[],
392-
* returns?: any,
392+
* returns?: string[],
393393
* iterateAllJsdocs?: true,
394394
* }} ruleConfig
395395
*/
@@ -422,15 +422,10 @@ export default function iterateJsdoc (iterator, ruleConfig) {
422422
const settings = getSettings(context);
423423

424424
let contexts = ruleConfig.returns;
425-
if (typeof ruleConfig.returns === 'function') {
426-
contexts = ruleConfig.returns(context, sourceCode);
427-
} else if (ruleConfig.contextDefaults) {
425+
if (ruleConfig.contextDefaults) {
428426
contexts = jsdocUtils.enforcedContexts(context, ruleConfig.contextDefaults);
429427
}
430428

431-
if (!Array.isArray(contexts) && contexts) {
432-
return contexts;
433-
}
434429
const checkJsdoc = (node) => {
435430
const jsdocNode = getJSDocComment(sourceCode, node);
436431

src/jsdocUtils.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,10 @@ const enforcedContexts = (context, defaultContexts) => {
508508
return contexts;
509509
};
510510

511+
/**
512+
* @param {string[]} contexts
513+
* @param {Function} checkJsdoc
514+
*/
511515
const getContextObject = (contexts, checkJsdoc) => {
512516
return contexts.reduce((obj, prop) => {
513517
obj[prop] = checkJsdoc;

src/rules/requireJsdoc.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import _ from 'lodash';
2-
import iterateJsdoc from '../iterateJsdoc';
32
import jsdocUtils from '../jsdocUtils';
43
import exportParser from '../exportParser';
54
import getJSDocComment from '../eslint/getJSDocComment';
@@ -115,7 +114,8 @@ const getOptions = (context) => {
115114
};
116115
};
117116

118-
export default iterateJsdoc(null, {
117+
/* eslint-disable sort-keys */
118+
export default {
119119
meta: {
120120
doc: {
121121
category: 'Stylistic Issues',
@@ -134,9 +134,11 @@ export default iterateJsdoc(null, {
134134

135135
type: 'suggestion'
136136
},
137-
returns (context, sourceCode) {
137+
create (context) {
138138
warnRemovedSettings(context, 'require-jsdoc');
139139

140+
const sourceCode = context.getSourceCode();
141+
140142
const {require: requireOption, publicOnly, exemptEmptyFunctions} = getOptions(context);
141143

142144
const checkJsDoc = (node) => {
@@ -237,4 +239,4 @@ export default iterateJsdoc(null, {
237239
}
238240
);
239241
}
240-
});
242+
};

test/eslint/getJSDocComment.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
import {
22
RuleTester
33
} from 'eslint';
4-
import iterateJsdoc from '../../src/iterateJsdoc';
54
import getJSDocComment from '../../src/eslint/getJSDocComment';
65

7-
const rule = iterateJsdoc(null, {
6+
/* eslint-disable sort-keys */
7+
const rule = {
88
meta: {
99
messages: {
1010
missingJsDoc: 'Missing JSDoc comment.'
1111
},
1212
type: 'layout'
1313
},
14-
returns (context, sourceCode) {
14+
create (context) {
15+
const sourceCode = context.getSourceCode();
16+
1517
return {
1618
ObjectExpression: (node) => {
1719
const comment = getJSDocComment(sourceCode, node);
@@ -25,7 +27,7 @@ const rule = iterateJsdoc(null, {
2527
}
2628
};
2729
}
28-
});
30+
};
2931

3032
const ruleTester = new RuleTester();
3133

0 commit comments

Comments
 (0)