diff --git a/src/rules/requireJsdoc.js b/src/rules/requireJsdoc.js index 7f990b84b..81d567353 100644 --- a/src/rules/requireJsdoc.js +++ b/src/rules/requireJsdoc.js @@ -3,6 +3,7 @@ import iterateJsdoc from '../iterateJsdoc'; import jsdocUtils from '../jsdocUtils'; import exportParser from '../exportParser'; import getJSDocComment from '../eslint/getJSDocComment'; +import warnRemovedSettings from '../warnRemovedSettings'; const OPTIONS_SCHEMA = { additionalProperties: false, @@ -13,6 +14,10 @@ const OPTIONS_SCHEMA = { }, type: 'array' }, + exemptEmptyFunctions: { + default: false, + type: 'boolean' + }, publicOnly: { oneOf: [ { @@ -85,6 +90,7 @@ const getOption = (context, baseObject, option, key) => { const getOptions = (context) => { return { + exemptEmptyFunctions: context.options[0] ? context.options[0].exemptEmptyFunctions : false, publicOnly: ((baseObj) => { const publicOnly = _.get(context, 'options[0].publicOnly'); if (!publicOnly) { @@ -129,7 +135,9 @@ export default iterateJsdoc(null, { type: 'suggestion' }, returns (context, sourceCode) { - const {require: requireOption, publicOnly} = getOptions(context); + warnRemovedSettings(context, 'require-jsdoc'); + + const {require: requireOption, publicOnly, exemptEmptyFunctions} = getOptions(context); const checkJsDoc = (node) => { const jsDocNode = getJSDocComment(sourceCode, node); @@ -138,7 +146,6 @@ export default iterateJsdoc(null, { return; } - const exemptEmptyFunctions = Boolean(_.get(context, 'settings.jsdoc.exemptEmptyFunctions')); if (exemptEmptyFunctions) { const functionParameterNames = jsdocUtils.getFunctionParameterNames(node); if (!functionParameterNames.length && !jsdocUtils.hasReturnValue(node, context)) { diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index f410267be..633b5d22a 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -202,6 +202,19 @@ export default { } ] }, + { + code: '', + errors: [ + { + message: '`settings.jsdoc.exemptEmptyFunctions` has been removed, use options in the rule `require-jsdoc` instead.' + } + ], + settings: { + jsdoc: { + exemptEmptyFunctions: true + } + } + }, { code: ` function quux (foo) { @@ -213,11 +226,9 @@ export default { message: 'Missing JSDoc comment.' } ], - settings: { - jsdoc: { - exemptEmptyFunctions: true - } - } + options: [ + {exemptEmptyFunctions: true} + ] }, { code: 'function myFunction() {}', @@ -427,11 +438,9 @@ export default { message: 'Missing JSDoc comment.', type: 'FunctionDeclaration' }], - settings: { - jsdoc: { - exemptEmptyFunctions: false - } - } + options: [ + {exemptEmptyFunctions: false} + ] }, { code: ` @@ -443,11 +452,9 @@ export default { message: 'Missing JSDoc comment.', type: 'FunctionDeclaration' }], - settings: { - jsdoc: { - exemptEmptyFunctions: false - } - } + options: [ + {exemptEmptyFunctions: false} + ] }, { code: ` @@ -1383,11 +1390,9 @@ export default { code: ` function foo () {} `, - settings: { - jsdoc: { - exemptEmptyFunctions: true - } - } + options: [ + {exemptEmptyFunctions: true} + ] }, { code: ` @@ -1395,11 +1400,9 @@ export default { return; } `, - settings: { - jsdoc: { - exemptEmptyFunctions: true - } - } + options: [ + {exemptEmptyFunctions: true} + ] }, { code: `