eslint-plugin-jsdoc 39.1.1 → 39.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -4
- package/dist/rules/requireJsdoc.js +51 -9
- package/dist/rules/requireJsdoc.js.map +1 -1
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -569,8 +569,8 @@ While at their simplest, these can be an array of string selectors, one can
|
|
|
569
569
|
also supply an object with `context` (in place of the string) and one of two
|
|
570
570
|
properties:
|
|
571
571
|
|
|
572
|
-
1. For `require-jsdoc`, there
|
|
573
|
-
that rule for details.
|
|
572
|
+
1. For `require-jsdoc`, there are also `inlineCommentBlock` and
|
|
573
|
+
`minLineCount` properties. See that rule for details.
|
|
574
574
|
1. For `no-missing-syntax` and `no-restricted-syntax`, there is also a
|
|
575
575
|
`message` property which allows customization of the message to be shown
|
|
576
576
|
when the rule is triggered.
|
|
@@ -12821,7 +12821,8 @@ contexts where you wish the rule to be applied (e.g., `Property` for
|
|
|
12821
12821
|
properties). If specified as an object, it should have a `context` property
|
|
12822
12822
|
and can have an `inlineCommentBlock` property which, if set to `true`, will
|
|
12823
12823
|
add an inline `/** */` instead of the regular, multi-line, indented jsdoc
|
|
12824
|
-
block which will otherwise be added. Defaults to an empty array.
|
|
12824
|
+
block which will otherwise be added. Defaults to an empty array. Contexts
|
|
12825
|
+
may also have their own `minLineCount` property.
|
|
12825
12826
|
|
|
12826
12827
|
Note that you may need to disable `require` items (e.g., `MethodDefinition`)
|
|
12827
12828
|
if you are specifying a more precise form in `contexts` (e.g., `MethodDefinition:not([accessibility="private"] > FunctionExpression`).
|
|
@@ -12884,12 +12885,20 @@ if one only wishes documentation on one of the two accessors. Defaults to
|
|
|
12884
12885
|
A boolean on whether to enable the fixer (which adds an empty jsdoc block).
|
|
12885
12886
|
Defaults to `true`.
|
|
12886
12887
|
|
|
12888
|
+
<a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-minlinecount"></a>
|
|
12889
|
+
<a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-minlinecount"></a>
|
|
12890
|
+
##### <code>minLineCount</code>
|
|
12891
|
+
|
|
12892
|
+
An integer to indicate a minimum number of lines expected for a node in order
|
|
12893
|
+
for it to require documentation. Defaults to `undefined`. This option will
|
|
12894
|
+
apply to any context; see `contexts` for line counts per context.
|
|
12895
|
+
|
|
12887
12896
|
|||
|
|
12888
12897
|
|---|---|
|
|
12889
12898
|
|Context|`ArrowFunctionExpression`, `ClassDeclaration`, `ClassExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
|
|
12890
12899
|
|Tags|N/A|
|
|
12891
12900
|
|Recommended|true|
|
|
12892
|
-
|Options|`publicOnly`, `require`, `contexts`, `exemptEmptyConstructors`, `exemptEmptyFunctions`, `enableFixer`|
|
|
12901
|
+
|Options|`publicOnly`, `require`, `contexts`, `exemptEmptyConstructors`, `exemptEmptyFunctions`, `enableFixer`, `minLineCount`|
|
|
12893
12902
|
|
|
12894
12903
|
The following patterns are considered problems:
|
|
12895
12904
|
|
|
@@ -13676,6 +13685,41 @@ module.exports = class Utility {
|
|
|
13676
13685
|
};
|
|
13677
13686
|
// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":false,"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":true,"MethodDefinition":true}}]
|
|
13678
13687
|
// Message: Missing JSDoc comment.
|
|
13688
|
+
|
|
13689
|
+
function quux () {
|
|
13690
|
+
return 3;
|
|
13691
|
+
}
|
|
13692
|
+
|
|
13693
|
+
function b () {}
|
|
13694
|
+
// "jsdoc/require-jsdoc": ["error"|"warn", {"minLineCount":2}]
|
|
13695
|
+
// Message: Missing JSDoc comment.
|
|
13696
|
+
|
|
13697
|
+
function quux () {
|
|
13698
|
+
return 3;
|
|
13699
|
+
}
|
|
13700
|
+
|
|
13701
|
+
var a = {};
|
|
13702
|
+
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","minLineCount":2},{"context":"VariableDeclaration","minLineCount":2}],"require":{"FunctionDeclaration":false}}]
|
|
13703
|
+
// Message: Missing JSDoc comment.
|
|
13704
|
+
|
|
13705
|
+
function quux () {
|
|
13706
|
+
return 3;
|
|
13707
|
+
}
|
|
13708
|
+
|
|
13709
|
+
var a = {
|
|
13710
|
+
b: 1,
|
|
13711
|
+
c: 2
|
|
13712
|
+
};
|
|
13713
|
+
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","minLineCount":4},{"context":"VariableDeclaration","minLineCount":2}],"require":{"FunctionDeclaration":false}}]
|
|
13714
|
+
// Message: Missing JSDoc comment.
|
|
13715
|
+
|
|
13716
|
+
class A {
|
|
13717
|
+
setId(newId: number): void {
|
|
13718
|
+
this.id = id;
|
|
13719
|
+
}
|
|
13720
|
+
}
|
|
13721
|
+
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"MethodDefinition","minLineCount":3}],"require":{"ClassDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}]
|
|
13722
|
+
// Message: Missing JSDoc comment.
|
|
13679
13723
|
````
|
|
13680
13724
|
|
|
13681
13725
|
The following patterns are not considered problems:
|
|
@@ -14489,6 +14533,30 @@ export class UserSettingsState { }
|
|
|
14489
14533
|
export class User {
|
|
14490
14534
|
}
|
|
14491
14535
|
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["Decorator"],"require":{"FunctionDeclaration":false}}]
|
|
14536
|
+
|
|
14537
|
+
function quux () {
|
|
14538
|
+
return 3;
|
|
14539
|
+
}
|
|
14540
|
+
|
|
14541
|
+
function b () {}
|
|
14542
|
+
// "jsdoc/require-jsdoc": ["error"|"warn", {"minLineCount":4}]
|
|
14543
|
+
|
|
14544
|
+
function quux () {
|
|
14545
|
+
return 3;
|
|
14546
|
+
}
|
|
14547
|
+
|
|
14548
|
+
var a = {
|
|
14549
|
+
b: 1,
|
|
14550
|
+
c: 2
|
|
14551
|
+
};
|
|
14552
|
+
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"FunctionDeclaration","minLineCount":4},{"context":"VariableDeclaration","minLineCount":5}],"require":{"FunctionDeclaration":false}}]
|
|
14553
|
+
|
|
14554
|
+
class A {
|
|
14555
|
+
setId(newId: number): void {
|
|
14556
|
+
this.id = id;
|
|
14557
|
+
}
|
|
14558
|
+
}
|
|
14559
|
+
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":[{"context":"MethodDefinition","minLineCount":4}],"require":{"ClassDeclaration":false,"FunctionExpression":false,"MethodDefinition":false}}]
|
|
14492
14560
|
````
|
|
14493
14561
|
|
|
14494
14562
|
|
|
@@ -52,6 +52,9 @@ const OPTIONS_SCHEMA = {
|
|
|
52
52
|
},
|
|
53
53
|
inlineCommentBlock: {
|
|
54
54
|
type: 'boolean'
|
|
55
|
+
},
|
|
56
|
+
minLineCount: {
|
|
57
|
+
type: 'integer'
|
|
55
58
|
}
|
|
56
59
|
},
|
|
57
60
|
type: 'object'
|
|
@@ -75,6 +78,9 @@ const OPTIONS_SCHEMA = {
|
|
|
75
78
|
default: '',
|
|
76
79
|
type: 'string'
|
|
77
80
|
},
|
|
81
|
+
minLineCount: {
|
|
82
|
+
type: 'integer'
|
|
83
|
+
},
|
|
78
84
|
publicOnly: {
|
|
79
85
|
oneOf: [{
|
|
80
86
|
default: false,
|
|
@@ -150,7 +156,8 @@ const getOptions = context => {
|
|
|
150
156
|
exemptEmptyConstructors = true,
|
|
151
157
|
exemptEmptyFunctions = false,
|
|
152
158
|
enableFixer = true,
|
|
153
|
-
fixerMessage = ''
|
|
159
|
+
fixerMessage = '',
|
|
160
|
+
minLineCount = undefined
|
|
154
161
|
} = context.options[0] || {};
|
|
155
162
|
return {
|
|
156
163
|
contexts,
|
|
@@ -158,6 +165,7 @@ const getOptions = context => {
|
|
|
158
165
|
exemptEmptyConstructors,
|
|
159
166
|
exemptEmptyFunctions,
|
|
160
167
|
fixerMessage,
|
|
168
|
+
minLineCount,
|
|
161
169
|
publicOnly: (baseObj => {
|
|
162
170
|
if (!publicOnly) {
|
|
163
171
|
return false;
|
|
@@ -201,10 +209,40 @@ var _default = {
|
|
|
201
209
|
exemptEmptyFunctions,
|
|
202
210
|
exemptEmptyConstructors,
|
|
203
211
|
enableFixer,
|
|
204
|
-
fixerMessage
|
|
212
|
+
fixerMessage,
|
|
213
|
+
minLineCount
|
|
205
214
|
} = getOptions(context);
|
|
206
215
|
|
|
207
216
|
const checkJsDoc = (info, handler, node) => {
|
|
217
|
+
if ( // Optimize
|
|
218
|
+
minLineCount !== undefined || contexts.some(({
|
|
219
|
+
minLineCount: count
|
|
220
|
+
}) => {
|
|
221
|
+
return count !== undefined;
|
|
222
|
+
})) {
|
|
223
|
+
const underMinLine = count => {
|
|
224
|
+
var _sourceCode$getText$m;
|
|
225
|
+
|
|
226
|
+
return count !== undefined && count > (((_sourceCode$getText$m = sourceCode.getText(node).match(/\n/gu)) === null || _sourceCode$getText$m === void 0 ? void 0 : _sourceCode$getText$m.length) ?? 0) + 1;
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
if (underMinLine(minLineCount)) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
const {
|
|
234
|
+
minLineCount: contextMinLineCount
|
|
235
|
+
} = contexts.find(({
|
|
236
|
+
context: ctxt
|
|
237
|
+
}) => {
|
|
238
|
+
return ctxt === (info.selector || node.type);
|
|
239
|
+
}) || {};
|
|
240
|
+
|
|
241
|
+
if (underMinLine(contextMinLineCount)) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
208
246
|
const jsDocNode = (0, _jsdoccomment.getJSDocComment)(sourceCode, node, settings);
|
|
209
247
|
|
|
210
248
|
if (jsDocNode) {
|
|
@@ -338,13 +376,6 @@ var _default = {
|
|
|
338
376
|
},
|
|
339
377
|
|
|
340
378
|
FunctionExpression(node) {
|
|
341
|
-
if (hasOption('MethodDefinition') && node.parent.type === 'MethodDefinition') {
|
|
342
|
-
checkJsDoc({
|
|
343
|
-
isFunctionContext: true
|
|
344
|
-
}, null, node);
|
|
345
|
-
return;
|
|
346
|
-
}
|
|
347
|
-
|
|
348
379
|
if (!hasOption('FunctionExpression')) {
|
|
349
380
|
return;
|
|
350
381
|
}
|
|
@@ -354,6 +385,17 @@ var _default = {
|
|
|
354
385
|
isFunctionContext: true
|
|
355
386
|
}, null, node);
|
|
356
387
|
}
|
|
388
|
+
},
|
|
389
|
+
|
|
390
|
+
MethodDefinition(node) {
|
|
391
|
+
if (!hasOption('MethodDefinition')) {
|
|
392
|
+
return;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
checkJsDoc({
|
|
396
|
+
isFunctionContext: true,
|
|
397
|
+
selector: 'MethodDefinition'
|
|
398
|
+
}, null, node.value);
|
|
357
399
|
}
|
|
358
400
|
|
|
359
401
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/rules/requireJsdoc.js"],"names":["OPTIONS_SCHEMA","additionalProperties","properties","checkConstructors","default","type","checkGetters","anyOf","enum","checkSetters","contexts","items","context","inlineCommentBlock","enableFixer","exemptEmptyConstructors","exemptEmptyFunctions","fixerMessage","publicOnly","oneOf","ancestorsOnly","cjs","esm","window","require","ArrowFunctionExpression","ClassDeclaration","ClassExpression","FunctionDeclaration","FunctionExpression","MethodDefinition","getOption","baseObject","option","key","options","getOptions","baseObj","prop","Object","keys","opt","create","sourceCode","getSourceCode","settings","requireOption","checkJsDoc","info","handler","node","jsDocNode","jsdocUtils","exemptSpeciaMethods","tags","isFunctionContext","isConstructor","functionParameterNames","getFunctionParameterNames","length","hasReturnValue","fix","fixer","lines","minLines","maxLines","baseNode","decorator","indent","getIndent","text","getText","loc","start","column","find","ctxt","insertion","repeat","slice","insertTextBefore","report","end","messageId","Boolean","initModuleExports","initWindow","exported","exportParser","isUncommentedExport","hasOption","some","getContextObject","enforcedContexts","includes","parent","value","meta","docs","category","description","recommended","url","fixable","messages","missingJsDoc","schema"],"mappings":"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","sourcesContent":["import {\n getJSDocComment,\n getReducedASTNode,\n getDecorator,\n} from '@es-joy/jsdoccomment';\nimport exportParser from '../exportParser';\nimport {\n getSettings,\n} from '../iterateJsdoc';\nimport jsdocUtils from '../jsdocUtils';\n\nconst OPTIONS_SCHEMA = {\n additionalProperties: false,\n properties: {\n checkConstructors: {\n default: true,\n type: 'boolean',\n },\n checkGetters: {\n anyOf: [\n {\n type: 'boolean',\n },\n {\n enum: [\n 'no-setter',\n ],\n type: 'string',\n },\n ],\n default: true,\n },\n checkSetters: {\n anyOf: [\n {\n type: 'boolean',\n },\n {\n enum: [\n 'no-getter',\n ],\n type: 'string',\n },\n ],\n default: true,\n },\n contexts: {\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n context: {\n type: 'string',\n },\n inlineCommentBlock: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n enableFixer: {\n default: true,\n type: 'boolean',\n },\n exemptEmptyConstructors: {\n default: false,\n type: 'boolean',\n },\n exemptEmptyFunctions: {\n default: false,\n type: 'boolean',\n },\n fixerMessage: {\n default: '',\n type: 'string',\n },\n publicOnly: {\n oneOf: [\n {\n default: false,\n type: 'boolean',\n },\n {\n additionalProperties: false,\n default: {},\n properties: {\n ancestorsOnly: {\n type: 'boolean',\n },\n cjs: {\n type: 'boolean',\n },\n esm: {\n type: 'boolean',\n },\n window: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n },\n require: {\n additionalProperties: false,\n default: {},\n properties: {\n ArrowFunctionExpression: {\n default: false,\n type: 'boolean',\n },\n ClassDeclaration: {\n default: false,\n type: 'boolean',\n },\n ClassExpression: {\n default: false,\n type: 'boolean',\n },\n FunctionDeclaration: {\n default: true,\n type: 'boolean',\n },\n FunctionExpression: {\n default: false,\n type: 'boolean',\n },\n MethodDefinition: {\n default: false,\n type: 'boolean',\n },\n },\n type: 'object',\n },\n },\n type: 'object',\n};\n\nconst getOption = (context, baseObject, option, key) => {\n if (context.options[0] && option in context.options[0] &&\n // Todo: boolean shouldn't be returning property, but tests currently require\n (typeof context.options[0][option] === 'boolean' ||\n key in context.options[0][option])\n ) {\n return context.options[0][option][key];\n }\n\n return baseObject.properties[key].default;\n};\n\nconst getOptions = (context) => {\n const {\n publicOnly,\n contexts = [],\n exemptEmptyConstructors = true,\n exemptEmptyFunctions = false,\n enableFixer = true,\n fixerMessage = '',\n } = context.options[0] || {};\n\n return {\n contexts,\n enableFixer,\n exemptEmptyConstructors,\n exemptEmptyFunctions,\n fixerMessage,\n publicOnly: ((baseObj) => {\n if (!publicOnly) {\n return false;\n }\n\n const properties = {};\n for (const prop of Object.keys(baseObj.properties)) {\n const opt = getOption(context, baseObj, 'publicOnly', prop);\n properties[prop] = opt;\n }\n\n return properties;\n })(OPTIONS_SCHEMA.properties.publicOnly.oneOf[1]),\n require: ((baseObj) => {\n const properties = {};\n for (const prop of Object.keys(baseObj.properties)) {\n const opt = getOption(context, baseObj, 'require', prop);\n properties[prop] = opt;\n }\n\n return properties;\n })(OPTIONS_SCHEMA.properties.require),\n };\n};\n\nexport default {\n create (context) {\n const sourceCode = context.getSourceCode();\n const settings = getSettings(context);\n if (!settings) {\n return {};\n }\n\n const {\n require: requireOption,\n contexts,\n publicOnly,\n exemptEmptyFunctions,\n exemptEmptyConstructors,\n enableFixer,\n fixerMessage,\n } = getOptions(context);\n\n const checkJsDoc = (info, handler, node) => {\n const jsDocNode = getJSDocComment(sourceCode, node, settings);\n\n if (jsDocNode) {\n return;\n }\n\n // For those who have options configured against ANY constructors (or\n // setters or getters) being reported\n if (jsdocUtils.exemptSpeciaMethods(\n {\n tags: [],\n }, node, context, [\n OPTIONS_SCHEMA,\n ],\n )) {\n return;\n }\n\n if (\n // Avoid reporting param-less, return-less functions (when\n // `exemptEmptyFunctions` option is set)\n exemptEmptyFunctions && info.isFunctionContext ||\n\n // Avoid reporting param-less, return-less constructor methods (when\n // `exemptEmptyConstructors` option is set)\n exemptEmptyConstructors && jsdocUtils.isConstructor(node)\n ) {\n const functionParameterNames = jsdocUtils.getFunctionParameterNames(node);\n if (!functionParameterNames.length && !jsdocUtils.hasReturnValue(node)) {\n return;\n }\n }\n\n const fix = (fixer) => {\n // Default to one line break if the `minLines`/`maxLines` settings allow\n const lines = settings.minLines === 0 && settings.maxLines >= 1 ? 1 : settings.minLines;\n let baseNode = getReducedASTNode(node, sourceCode);\n\n const decorator = getDecorator(baseNode);\n if (decorator) {\n baseNode = decorator;\n }\n\n const indent = jsdocUtils.getIndent({\n text: sourceCode.getText(\n baseNode,\n baseNode.loc.start.column,\n ),\n });\n\n const {\n inlineCommentBlock,\n } = contexts.find(({\n context: ctxt,\n }) => {\n return ctxt === node.type;\n }) || {};\n const insertion = (inlineCommentBlock ?\n `/** ${fixerMessage}` :\n `/**\\n${indent}*${fixerMessage}\\n${indent}`) +\n `*/${'\\n'.repeat(lines)}${indent.slice(0, -1)}`;\n\n return fixer.insertTextBefore(baseNode, insertion);\n };\n\n const report = () => {\n const loc = {\n end: node.loc.start + 1,\n start: node.loc.start,\n };\n context.report({\n fix: enableFixer ? fix : null,\n loc,\n messageId: 'missingJsDoc',\n node,\n });\n };\n\n if (publicOnly) {\n const opt = {\n ancestorsOnly: Boolean(publicOnly?.ancestorsOnly ?? false),\n esm: Boolean(publicOnly?.esm ?? true),\n initModuleExports: Boolean(publicOnly?.cjs ?? true),\n initWindow: Boolean(publicOnly?.window ?? false),\n };\n const exported = exportParser.isUncommentedExport(node, sourceCode, opt, settings);\n\n if (exported) {\n report();\n }\n } else {\n report();\n }\n };\n\n const hasOption = (prop) => {\n return requireOption[prop] || contexts.some((ctxt) => {\n return typeof ctxt === 'object' ? ctxt.context === prop : ctxt === prop;\n });\n };\n\n return {\n ...jsdocUtils.getContextObject(\n jsdocUtils.enforcedContexts(context, []),\n checkJsDoc,\n ),\n ArrowFunctionExpression (node) {\n if (!hasOption('ArrowFunctionExpression')) {\n return;\n }\n\n if (\n [\n 'VariableDeclarator', 'AssignmentExpression', 'ExportDefaultDeclaration',\n ].includes(node.parent.type) ||\n [\n 'Property', 'ObjectProperty', 'ClassProperty', 'PropertyDefinition',\n ].includes(node.parent.type) && node === node.parent.value\n ) {\n checkJsDoc({\n isFunctionContext: true,\n }, null, node);\n }\n },\n\n ClassDeclaration (node) {\n if (!hasOption('ClassDeclaration')) {\n return;\n }\n\n checkJsDoc({\n isFunctionContext: false,\n }, null, node);\n },\n\n ClassExpression (node) {\n if (!hasOption('ClassExpression')) {\n return;\n }\n\n checkJsDoc({\n isFunctionContext: false,\n }, null, node);\n },\n\n FunctionDeclaration (node) {\n if (!hasOption('FunctionDeclaration')) {\n return;\n }\n\n checkJsDoc({\n isFunctionContext: true,\n }, null, node);\n },\n\n FunctionExpression (node) {\n if (hasOption('MethodDefinition') && node.parent.type === 'MethodDefinition') {\n checkJsDoc({\n isFunctionContext: true,\n }, null, node);\n\n return;\n }\n\n if (!hasOption('FunctionExpression')) {\n return;\n }\n\n if (\n [\n 'VariableDeclarator', 'AssignmentExpression', 'ExportDefaultDeclaration',\n ].includes(node.parent.type) ||\n [\n 'Property', 'ObjectProperty', 'ClassProperty', 'PropertyDefinition',\n ].includes(node.parent.type) && node === node.parent.value\n ) {\n checkJsDoc({\n isFunctionContext: true,\n }, null, node);\n }\n },\n };\n },\n meta: {\n docs: {\n category: 'Stylistic Issues',\n description: 'Require JSDoc comments',\n recommended: 'true',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-jsdoc',\n },\n\n fixable: 'code',\n\n messages: {\n missingJsDoc: 'Missing JSDoc comment.',\n },\n\n schema: [\n OPTIONS_SCHEMA,\n ],\n\n type: 'suggestion',\n },\n};\n"],"file":"requireJsdoc.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/rules/requireJsdoc.js"],"names":["OPTIONS_SCHEMA","additionalProperties","properties","checkConstructors","default","type","checkGetters","anyOf","enum","checkSetters","contexts","items","context","inlineCommentBlock","minLineCount","enableFixer","exemptEmptyConstructors","exemptEmptyFunctions","fixerMessage","publicOnly","oneOf","ancestorsOnly","cjs","esm","window","require","ArrowFunctionExpression","ClassDeclaration","ClassExpression","FunctionDeclaration","FunctionExpression","MethodDefinition","getOption","baseObject","option","key","options","getOptions","undefined","baseObj","prop","Object","keys","opt","create","sourceCode","getSourceCode","settings","requireOption","checkJsDoc","info","handler","node","some","count","underMinLine","getText","match","length","contextMinLineCount","find","ctxt","selector","jsDocNode","jsdocUtils","exemptSpeciaMethods","tags","isFunctionContext","isConstructor","functionParameterNames","getFunctionParameterNames","hasReturnValue","fix","fixer","lines","minLines","maxLines","baseNode","decorator","indent","getIndent","text","loc","start","column","insertion","repeat","slice","insertTextBefore","report","end","messageId","Boolean","initModuleExports","initWindow","exported","exportParser","isUncommentedExport","hasOption","getContextObject","enforcedContexts","includes","parent","value","meta","docs","category","description","recommended","url","fixable","messages","missingJsDoc","schema"],"mappings":"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","sourcesContent":["import {\n getJSDocComment,\n getReducedASTNode,\n getDecorator,\n} from '@es-joy/jsdoccomment';\nimport exportParser from '../exportParser';\nimport {\n getSettings,\n} from '../iterateJsdoc';\nimport jsdocUtils from '../jsdocUtils';\n\nconst OPTIONS_SCHEMA = {\n additionalProperties: false,\n properties: {\n checkConstructors: {\n default: true,\n type: 'boolean',\n },\n checkGetters: {\n anyOf: [\n {\n type: 'boolean',\n },\n {\n enum: [\n 'no-setter',\n ],\n type: 'string',\n },\n ],\n default: true,\n },\n checkSetters: {\n anyOf: [\n {\n type: 'boolean',\n },\n {\n enum: [\n 'no-getter',\n ],\n type: 'string',\n },\n ],\n default: true,\n },\n contexts: {\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n context: {\n type: 'string',\n },\n inlineCommentBlock: {\n type: 'boolean',\n },\n minLineCount: {\n type: 'integer',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n enableFixer: {\n default: true,\n type: 'boolean',\n },\n exemptEmptyConstructors: {\n default: false,\n type: 'boolean',\n },\n exemptEmptyFunctions: {\n default: false,\n type: 'boolean',\n },\n fixerMessage: {\n default: '',\n type: 'string',\n },\n minLineCount: {\n type: 'integer',\n },\n publicOnly: {\n oneOf: [\n {\n default: false,\n type: 'boolean',\n },\n {\n additionalProperties: false,\n default: {},\n properties: {\n ancestorsOnly: {\n type: 'boolean',\n },\n cjs: {\n type: 'boolean',\n },\n esm: {\n type: 'boolean',\n },\n window: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n },\n require: {\n additionalProperties: false,\n default: {},\n properties: {\n ArrowFunctionExpression: {\n default: false,\n type: 'boolean',\n },\n ClassDeclaration: {\n default: false,\n type: 'boolean',\n },\n ClassExpression: {\n default: false,\n type: 'boolean',\n },\n FunctionDeclaration: {\n default: true,\n type: 'boolean',\n },\n FunctionExpression: {\n default: false,\n type: 'boolean',\n },\n MethodDefinition: {\n default: false,\n type: 'boolean',\n },\n },\n type: 'object',\n },\n },\n type: 'object',\n};\n\nconst getOption = (context, baseObject, option, key) => {\n if (context.options[0] && option in context.options[0] &&\n // Todo: boolean shouldn't be returning property, but tests currently require\n (typeof context.options[0][option] === 'boolean' ||\n key in context.options[0][option])\n ) {\n return context.options[0][option][key];\n }\n\n return baseObject.properties[key].default;\n};\n\nconst getOptions = (context) => {\n const {\n publicOnly,\n contexts = [],\n exemptEmptyConstructors = true,\n exemptEmptyFunctions = false,\n enableFixer = true,\n fixerMessage = '',\n minLineCount = undefined,\n } = context.options[0] || {};\n\n return {\n contexts,\n enableFixer,\n exemptEmptyConstructors,\n exemptEmptyFunctions,\n fixerMessage,\n minLineCount,\n publicOnly: ((baseObj) => {\n if (!publicOnly) {\n return false;\n }\n\n const properties = {};\n for (const prop of Object.keys(baseObj.properties)) {\n const opt = getOption(context, baseObj, 'publicOnly', prop);\n properties[prop] = opt;\n }\n\n return properties;\n })(OPTIONS_SCHEMA.properties.publicOnly.oneOf[1]),\n require: ((baseObj) => {\n const properties = {};\n for (const prop of Object.keys(baseObj.properties)) {\n const opt = getOption(context, baseObj, 'require', prop);\n properties[prop] = opt;\n }\n\n return properties;\n })(OPTIONS_SCHEMA.properties.require),\n };\n};\n\nexport default {\n create (context) {\n const sourceCode = context.getSourceCode();\n const settings = getSettings(context);\n if (!settings) {\n return {};\n }\n\n const {\n require: requireOption,\n contexts,\n publicOnly,\n exemptEmptyFunctions,\n exemptEmptyConstructors,\n enableFixer,\n fixerMessage,\n minLineCount,\n } = getOptions(context);\n\n const checkJsDoc = (info, handler, node) => {\n if (\n // Optimize\n minLineCount !== undefined || contexts.some(({\n minLineCount: count,\n }) => {\n return count !== undefined;\n })\n ) {\n const underMinLine = (count) => {\n return count !== undefined && count >\n (sourceCode.getText(node).match(/\\n/gu)?.length ?? 0) + 1;\n };\n\n if (underMinLine(minLineCount)) {\n return;\n }\n\n const {\n minLineCount: contextMinLineCount,\n } = contexts.find(({\n context: ctxt,\n }) => {\n return ctxt === (info.selector || node.type);\n }) || {};\n if (underMinLine(contextMinLineCount)) {\n return;\n }\n }\n\n const jsDocNode = getJSDocComment(sourceCode, node, settings);\n\n if (jsDocNode) {\n return;\n }\n\n // For those who have options configured against ANY constructors (or\n // setters or getters) being reported\n if (jsdocUtils.exemptSpeciaMethods(\n {\n tags: [],\n }, node, context, [\n OPTIONS_SCHEMA,\n ],\n )) {\n return;\n }\n\n if (\n // Avoid reporting param-less, return-less functions (when\n // `exemptEmptyFunctions` option is set)\n exemptEmptyFunctions && info.isFunctionContext ||\n\n // Avoid reporting param-less, return-less constructor methods (when\n // `exemptEmptyConstructors` option is set)\n exemptEmptyConstructors && jsdocUtils.isConstructor(node)\n ) {\n const functionParameterNames = jsdocUtils.getFunctionParameterNames(node);\n if (!functionParameterNames.length && !jsdocUtils.hasReturnValue(node)) {\n return;\n }\n }\n\n const fix = (fixer) => {\n // Default to one line break if the `minLines`/`maxLines` settings allow\n const lines = settings.minLines === 0 && settings.maxLines >= 1 ? 1 : settings.minLines;\n let baseNode = getReducedASTNode(node, sourceCode);\n\n const decorator = getDecorator(baseNode);\n if (decorator) {\n baseNode = decorator;\n }\n\n const indent = jsdocUtils.getIndent({\n text: sourceCode.getText(\n baseNode,\n baseNode.loc.start.column,\n ),\n });\n\n const {\n inlineCommentBlock,\n } = contexts.find(({\n context: ctxt,\n }) => {\n return ctxt === node.type;\n }) || {};\n const insertion = (inlineCommentBlock ?\n `/** ${fixerMessage}` :\n `/**\\n${indent}*${fixerMessage}\\n${indent}`) +\n `*/${'\\n'.repeat(lines)}${indent.slice(0, -1)}`;\n\n return fixer.insertTextBefore(baseNode, insertion);\n };\n\n const report = () => {\n const loc = {\n end: node.loc.start + 1,\n start: node.loc.start,\n };\n context.report({\n fix: enableFixer ? fix : null,\n loc,\n messageId: 'missingJsDoc',\n node,\n });\n };\n\n if (publicOnly) {\n const opt = {\n ancestorsOnly: Boolean(publicOnly?.ancestorsOnly ?? false),\n esm: Boolean(publicOnly?.esm ?? true),\n initModuleExports: Boolean(publicOnly?.cjs ?? true),\n initWindow: Boolean(publicOnly?.window ?? false),\n };\n const exported = exportParser.isUncommentedExport(node, sourceCode, opt, settings);\n\n if (exported) {\n report();\n }\n } else {\n report();\n }\n };\n\n const hasOption = (prop) => {\n return requireOption[prop] || contexts.some((ctxt) => {\n return typeof ctxt === 'object' ? ctxt.context === prop : ctxt === prop;\n });\n };\n\n return {\n ...jsdocUtils.getContextObject(\n jsdocUtils.enforcedContexts(context, []),\n checkJsDoc,\n ),\n ArrowFunctionExpression (node) {\n if (!hasOption('ArrowFunctionExpression')) {\n return;\n }\n\n if (\n [\n 'VariableDeclarator', 'AssignmentExpression', 'ExportDefaultDeclaration',\n ].includes(node.parent.type) ||\n [\n 'Property', 'ObjectProperty', 'ClassProperty', 'PropertyDefinition',\n ].includes(node.parent.type) && node === node.parent.value\n ) {\n checkJsDoc({\n isFunctionContext: true,\n }, null, node);\n }\n },\n\n ClassDeclaration (node) {\n if (!hasOption('ClassDeclaration')) {\n return;\n }\n\n checkJsDoc({\n isFunctionContext: false,\n }, null, node);\n },\n\n ClassExpression (node) {\n if (!hasOption('ClassExpression')) {\n return;\n }\n\n checkJsDoc({\n isFunctionContext: false,\n }, null, node);\n },\n\n FunctionDeclaration (node) {\n if (!hasOption('FunctionDeclaration')) {\n return;\n }\n\n checkJsDoc({\n isFunctionContext: true,\n }, null, node);\n },\n\n FunctionExpression (node) {\n if (!hasOption('FunctionExpression')) {\n return;\n }\n\n if (\n [\n 'VariableDeclarator', 'AssignmentExpression', 'ExportDefaultDeclaration',\n ].includes(node.parent.type) ||\n [\n 'Property', 'ObjectProperty', 'ClassProperty', 'PropertyDefinition',\n ].includes(node.parent.type) && node === node.parent.value\n ) {\n checkJsDoc({\n isFunctionContext: true,\n }, null, node);\n }\n },\n\n MethodDefinition (node) {\n if (!hasOption('MethodDefinition')) {\n return;\n }\n\n checkJsDoc({\n isFunctionContext: true,\n selector: 'MethodDefinition',\n }, null, node.value);\n },\n };\n },\n meta: {\n docs: {\n category: 'Stylistic Issues',\n description: 'Require JSDoc comments',\n recommended: 'true',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-jsdoc',\n },\n\n fixable: 'code',\n\n messages: {\n missingJsDoc: 'Missing JSDoc comment.',\n },\n\n schema: [\n OPTIONS_SCHEMA,\n ],\n\n type: 'suggestion',\n },\n};\n"],"file":"requireJsdoc.js"}
|
package/package.json
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
"url": "http://gajus.com"
|
|
6
6
|
},
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@es-joy/jsdoccomment": "~0.
|
|
8
|
+
"@es-joy/jsdoccomment": "~0.23.1",
|
|
9
9
|
"comment-parser": "1.3.1",
|
|
10
10
|
"debug": "^4.3.4",
|
|
11
11
|
"escape-string-regexp": "^4.0.0",
|
|
12
12
|
"esquery": "^1.4.0",
|
|
13
|
-
"semver": "^7.3.
|
|
13
|
+
"semver": "^7.3.7",
|
|
14
14
|
"spdx-expression-parse": "^3.0.1"
|
|
15
15
|
},
|
|
16
16
|
"description": "JSDoc linting rules for ESLint.",
|
|
@@ -23,21 +23,21 @@
|
|
|
23
23
|
"@babel/plugin-transform-flow-strip-types": "^7.16.7",
|
|
24
24
|
"@babel/preset-env": "^7.16.11",
|
|
25
25
|
"@babel/register": "^7.17.7",
|
|
26
|
-
"@es-joy/jsdoc-eslint-parser": "^0.
|
|
26
|
+
"@es-joy/jsdoc-eslint-parser": "^0.10.1",
|
|
27
27
|
"@hkdobrev/run-if-changed": "^0.3.1",
|
|
28
|
-
"@typescript-eslint/parser": "^5.
|
|
28
|
+
"@typescript-eslint/parser": "^5.19.0",
|
|
29
29
|
"babel-plugin-add-module-exports": "^1.0.4",
|
|
30
30
|
"babel-plugin-istanbul": "^6.1.1",
|
|
31
31
|
"camelcase": "^6.3.0",
|
|
32
32
|
"chai": "^4.3.6",
|
|
33
33
|
"cross-env": "^7.0.3",
|
|
34
34
|
"decamelize": "^5.0.1",
|
|
35
|
-
"eslint": "^8.
|
|
35
|
+
"eslint": "^8.13.0",
|
|
36
36
|
"eslint-config-canonical": "~33.0.1",
|
|
37
37
|
"gitdown": "^3.1.5",
|
|
38
|
-
"glob": "^
|
|
38
|
+
"glob": "^8.0.1",
|
|
39
39
|
"husky": "^7.0.4",
|
|
40
|
-
"lint-staged": "^12.3.
|
|
40
|
+
"lint-staged": "^12.3.8",
|
|
41
41
|
"lodash.defaultsdeep": "^4.6.1",
|
|
42
42
|
"mocha": "^9.2.2",
|
|
43
43
|
"nyc": "^15.1.0",
|
|
@@ -116,5 +116,5 @@
|
|
|
116
116
|
"test-cov": "cross-env TIMING=1 nyc --reporter text npm run test-no-cov",
|
|
117
117
|
"test-index": "npm run test-no-cov -- test/rules/index.js"
|
|
118
118
|
},
|
|
119
|
-
"version": "39.
|
|
119
|
+
"version": "39.2.2"
|
|
120
120
|
}
|