Skip to content

Commit 6d34b94

Browse files
yeonjuanbrettz9
authored andcommitted
fix(require-param): reporting all missing jsdoc params (#348)
fix('require-param'): report all missing jsdoc params (fixes #347)
1 parent fea6b88 commit 6d34b94

File tree

3 files changed

+80
-8
lines changed

3 files changed

+80
-8
lines changed

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5774,6 +5774,30 @@ function quux (foo) {
57745774
}
57755775
// Message: Missing JSDoc @param "foo" declaration.
57765776

5777+
/**
5778+
*
5779+
*/
5780+
function quux (foo, bar) {
5781+
5782+
}
5783+
// Message: Missing JSDoc @param "foo" declaration.
5784+
5785+
/**
5786+
* @param bar
5787+
*/
5788+
function quux (foo, bar, baz) {
5789+
5790+
}
5791+
// Message: Missing JSDoc @param "foo" declaration.
5792+
5793+
/**
5794+
* @param baz
5795+
*/
5796+
function quux (foo, bar, baz) {
5797+
5798+
}
5799+
// Message: Missing JSDoc @param "foo" declaration.
5800+
57775801
/**
57785802
* @param
57795803
*/

src/rules/requireParam.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,10 @@ export default iterateJsdoc(({
2020
return;
2121
}
2222

23-
functionParameterNames.some((functionParameterName, index) => {
24-
const jsdocParameterName = jsdocParameterNames[index];
25-
26-
if (!jsdocParameterName) {
23+
functionParameterNames.forEach((functionParameterName) => {
24+
if (!jsdocParameterNames.includes(functionParameterName)) {
2725
report(`Missing JSDoc @${utils.getPreferredTagName({tagName: 'param'})} "${functionParameterName}" declaration.`);
28-
29-
return true;
3026
}
31-
32-
return false;
3327
});
3428
}, {
3529
meta: {

test/rules/assertions/requireParam.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,60 @@ export default {
2121
}
2222
]
2323
},
24+
{
25+
code: `
26+
/**
27+
*
28+
*/
29+
function quux (foo, bar) {
30+
31+
}
32+
`,
33+
errors: [
34+
{
35+
message: 'Missing JSDoc @param "foo" declaration.'
36+
},
37+
{
38+
message: 'Missing JSDoc @param "bar" declaration.'
39+
}
40+
]
41+
},
42+
{
43+
code: `
44+
/**
45+
* @param bar
46+
*/
47+
function quux (foo, bar, baz) {
48+
49+
}
50+
`,
51+
errors: [
52+
{
53+
message: 'Missing JSDoc @param "foo" declaration.'
54+
},
55+
{
56+
message: 'Missing JSDoc @param "baz" declaration.'
57+
}
58+
]
59+
},
60+
{
61+
code: `
62+
/**
63+
* @param baz
64+
*/
65+
function quux (foo, bar, baz) {
66+
67+
}
68+
`,
69+
errors: [
70+
{
71+
message: 'Missing JSDoc @param "foo" declaration.'
72+
},
73+
{
74+
message: 'Missing JSDoc @param "bar" declaration.'
75+
}
76+
]
77+
},
2478
{
2579
code: `
2680
/**

0 commit comments

Comments
 (0)