Skip to content

Commit cd2d28e

Browse files
committed
feat(no-types, require-description): add missing meta.type ("suggestion" for both)
refactor: ensure `opts.meta.type` is set and valid on each rule
1 parent 6ced508 commit cd2d28e

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

src/iterateJsdoc.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,13 @@ export {
274274
* @typedef {ReturnType<typeof getSettings>} Settings
275275
*
276276
* @param {(arg: {utils: Utils, settings: Settings}) => any} iterator
277-
* @param {{returns?: any}} opts
277+
* @param {{meta: any, returns?: any}} opts
278278
*/
279-
export default function iterateJsdoc (iterator, opts = {}) {
279+
export default function iterateJsdoc (iterator, opts) {
280+
if (!opts.meta || !opts.meta.type || !['problem', 'suggestion', 'layout'].includes(opts.meta.type)) {
281+
throw new TypeError('Rule must include `meta.type` option (with value "problem", "suggestion", or "layout")');
282+
}
283+
280284
return {
281285
/**
282286
* The entrypoint for the JSDoc rule.

src/rules/noTypes.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,8 @@ export default iterateJsdoc(({
1111
report(`Types are not permitted on @${tag.tag}.`, null, tag);
1212
}
1313
});
14+
}, {
15+
meta: {
16+
type: 'suggestion'
17+
}
1418
});

src/rules/requireDescription.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ export default iterateJsdoc(({
3030
}
3131
});
3232
}, {
33+
meta: {
34+
type: 'suggestion'
35+
},
3336
returns (context) {
3437
const defaultContexts = [
3538
'ArrowFunctionExpression',
@@ -77,6 +80,5 @@ export default iterateJsdoc(({
7780
},
7881
type: 'object'
7982
}
80-
],
81-
type: 'suggestion'
83+
]
8284
});

0 commit comments

Comments
 (0)