Skip to content

Commit 9f9f4fb

Browse files
committed
feat(require-jsdoc): move settings to options
1 parent 06cb22e commit 9f9f4fb

File tree

2 files changed

+37
-27
lines changed

2 files changed

+37
-27
lines changed

src/rules/requireJsdoc.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import iterateJsdoc from '../iterateJsdoc';
33
import jsdocUtils from '../jsdocUtils';
44
import exportParser from '../exportParser';
55
import getJSDocComment from '../eslint/getJSDocComment';
6+
import warnRemovedSettings from '../warnRemovedSettings';
67

78
const OPTIONS_SCHEMA = {
89
additionalProperties: false,
@@ -13,6 +14,10 @@ const OPTIONS_SCHEMA = {
1314
},
1415
type: 'array'
1516
},
17+
exemptEmptyFunctions: {
18+
default: false,
19+
type: 'boolean'
20+
},
1621
publicOnly: {
1722
oneOf: [
1823
{
@@ -85,6 +90,7 @@ const getOption = (context, baseObject, option, key) => {
8590

8691
const getOptions = (context) => {
8792
return {
93+
exemptEmptyFunctions: context.options[0] ? context.options[0].exemptEmptyFunctions : false,
8894
publicOnly: ((baseObj) => {
8995
const publicOnly = _.get(context, 'options[0].publicOnly');
9096
if (!publicOnly) {
@@ -129,7 +135,9 @@ export default iterateJsdoc(null, {
129135
type: 'suggestion'
130136
},
131137
returns (context, sourceCode) {
132-
const {require: requireOption, publicOnly} = getOptions(context);
138+
warnRemovedSettings(context, 'require-jsdoc');
139+
140+
const {require: requireOption, publicOnly, exemptEmptyFunctions} = getOptions(context);
133141

134142
const checkJsDoc = (node) => {
135143
const jsDocNode = getJSDocComment(sourceCode, node);
@@ -138,7 +146,6 @@ export default iterateJsdoc(null, {
138146
return;
139147
}
140148

141-
const exemptEmptyFunctions = Boolean(_.get(context, 'settings.jsdoc.exemptEmptyFunctions'));
142149
if (exemptEmptyFunctions) {
143150
const functionParameterNames = jsdocUtils.getFunctionParameterNames(node);
144151
if (!functionParameterNames.length && !jsdocUtils.hasReturnValue(node, context)) {

test/rules/assertions/requireJsdoc.js

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,19 @@ export default {
202202
}
203203
]
204204
},
205+
{
206+
code: '',
207+
errors: [
208+
{
209+
message: '`settings.jsdoc.exemptEmptyFunctions` has been removed, use options in the rule `require-jsdoc` instead.'
210+
}
211+
],
212+
settings: {
213+
jsdoc: {
214+
exemptEmptyFunctions: true
215+
}
216+
}
217+
},
205218
{
206219
code: `
207220
function quux (foo) {
@@ -213,11 +226,9 @@ export default {
213226
message: 'Missing JSDoc comment.'
214227
}
215228
],
216-
settings: {
217-
jsdoc: {
218-
exemptEmptyFunctions: true
219-
}
220-
}
229+
options: [
230+
{exemptEmptyFunctions: true}
231+
]
221232
},
222233
{
223234
code: 'function myFunction() {}',
@@ -427,11 +438,9 @@ export default {
427438
message: 'Missing JSDoc comment.',
428439
type: 'FunctionDeclaration'
429440
}],
430-
settings: {
431-
jsdoc: {
432-
exemptEmptyFunctions: false
433-
}
434-
}
441+
options: [
442+
{exemptEmptyFunctions: false}
443+
]
435444
},
436445
{
437446
code: `
@@ -443,11 +452,9 @@ export default {
443452
message: 'Missing JSDoc comment.',
444453
type: 'FunctionDeclaration'
445454
}],
446-
settings: {
447-
jsdoc: {
448-
exemptEmptyFunctions: false
449-
}
450-
}
455+
options: [
456+
{exemptEmptyFunctions: false}
457+
]
451458
},
452459
{
453460
code: `
@@ -1383,23 +1390,19 @@ export default {
13831390
code: `
13841391
function foo () {}
13851392
`,
1386-
settings: {
1387-
jsdoc: {
1388-
exemptEmptyFunctions: true
1389-
}
1390-
}
1393+
options: [
1394+
{exemptEmptyFunctions: true}
1395+
]
13911396
},
13921397
{
13931398
code: `
13941399
function foo () {
13951400
return;
13961401
}
13971402
`,
1398-
settings: {
1399-
jsdoc: {
1400-
exemptEmptyFunctions: true
1401-
}
1402-
}
1403+
options: [
1404+
{exemptEmptyFunctions: true}
1405+
]
14031406
},
14041407
{
14051408
code: `

0 commit comments

Comments
 (0)