eslint-plugin-jsdoc 39.2.9 → 39.3.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 +13 -0
- package/dist/WarnSettings.js.map +1 -1
- package/dist/alignTransform.js.map +1 -1
- package/dist/bin/generateRule.js.map +1 -1
- package/dist/defaultTagOrder.js.map +1 -1
- package/dist/exportParser.js.map +1 -1
- package/dist/generateRule.js.map +1 -1
- package/dist/getDefaultTagStructureForMode.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/iterateJsdoc.js +57 -16
- package/dist/iterateJsdoc.js.map +1 -1
- package/dist/jsdocUtils.js +6 -2
- package/dist/jsdocUtils.js.map +1 -1
- package/dist/rules/checkAccess.js.map +1 -1
- package/dist/rules/checkAlignment.js.map +1 -1
- package/dist/rules/checkExamples.js.map +1 -1
- package/dist/rules/checkIndentation.js.map +1 -1
- package/dist/rules/checkLineAlignment.js.map +1 -1
- package/dist/rules/checkParamNames.js.map +1 -1
- package/dist/rules/checkPropertyNames.js.map +1 -1
- package/dist/rules/checkSyntax.js.map +1 -1
- package/dist/rules/checkTagNames.js.map +1 -1
- package/dist/rules/checkTypes.js.map +1 -1
- package/dist/rules/checkValues.js.map +1 -1
- package/dist/rules/emptyTags.js.map +1 -1
- package/dist/rules/implementsOnClasses.js.map +1 -1
- package/dist/rules/matchDescription.js.map +1 -1
- package/dist/rules/matchName.js.map +1 -1
- package/dist/rules/multilineBlocks.js.map +1 -1
- package/dist/rules/newlineAfterDescription.js.map +1 -1
- package/dist/rules/noBadBlocks.js.map +1 -1
- package/dist/rules/noDefaults.js.map +1 -1
- package/dist/rules/noMissingSyntax.js.map +1 -1
- package/dist/rules/noMultiAsterisks.js.map +1 -1
- package/dist/rules/noRestrictedSyntax.js.map +1 -1
- package/dist/rules/noTypes.js.map +1 -1
- package/dist/rules/noUndefinedTypes.js.map +1 -1
- package/dist/rules/requireAsteriskPrefix.js.map +1 -1
- package/dist/rules/requireDescription.js.map +1 -1
- package/dist/rules/requireDescriptionCompleteSentence.js.map +1 -1
- package/dist/rules/requireExample.js.map +1 -1
- package/dist/rules/requireFileOverview.js.map +1 -1
- package/dist/rules/requireHyphenBeforeParamDescription.js.map +1 -1
- package/dist/rules/requireJsdoc.js.map +1 -1
- package/dist/rules/requireParam.js.map +1 -1
- package/dist/rules/requireParamDescription.js.map +1 -1
- package/dist/rules/requireParamName.js.map +1 -1
- package/dist/rules/requireParamType.js.map +1 -1
- package/dist/rules/requireProperty.js.map +1 -1
- package/dist/rules/requirePropertyDescription.js.map +1 -1
- package/dist/rules/requirePropertyName.js.map +1 -1
- package/dist/rules/requirePropertyType.js.map +1 -1
- package/dist/rules/requireReturns.js.map +1 -1
- package/dist/rules/requireReturnsCheck.js.map +1 -1
- package/dist/rules/requireReturnsDescription.js.map +1 -1
- package/dist/rules/requireReturnsType.js.map +1 -1
- package/dist/rules/requireThrows.js.map +1 -1
- package/dist/rules/requireYields.js.map +1 -1
- package/dist/rules/requireYieldsCheck.js.map +1 -1
- package/dist/rules/sortTags.js.map +1 -1
- package/dist/rules/tagLines.js.map +1 -1
- package/dist/rules/validTypes.js.map +1 -1
- package/dist/tagNames.js.map +1 -1
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requireExample.js","names":["iterateJsdoc","context","jsdoc","report","utils","avoidDocs","enableFixer","exemptNoArguments","options","targetTagName","functionExamples","tags","filter","tag","length","isIteratingFunction","hasParams","reportJSDoc","addTag","example","exampleContent","name","getTagDescription","trim","split","Boolean","contextDefaults","meta","docs","description","url","fixable","schema","additionalProperties","properties","checkConstructors","default","type","checkGetters","checkSetters","contexts","items","anyOf","comment","exemptedBy"],"sources":["../../src/rules/requireExample.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n context,\n jsdoc,\n report,\n utils,\n}) => {\n if (utils.avoidDocs()) {\n return;\n }\n\n const {\n enableFixer = true,\n exemptNoArguments = false,\n } = context.options[0] || {};\n\n const targetTagName = 'example';\n\n const functionExamples = jsdoc.tags.filter(({\n tag,\n }) => {\n return tag === targetTagName;\n });\n\n if (!functionExamples.length) {\n if (exemptNoArguments && utils.isIteratingFunction() &&\n !utils.hasParams()\n ) {\n return;\n }\n\n utils.reportJSDoc(`Missing JSDoc @${targetTagName} declaration.`, null, () => {\n if (enableFixer) {\n utils.addTag(targetTagName);\n }\n });\n\n return;\n }\n\n for (const example of functionExamples) {\n const exampleContent = `${example.name} ${utils.getTagDescription(example)}`\n .trim()\n .split('\\n')\n .filter(Boolean);\n\n if (!exampleContent.length) {\n report(`Missing JSDoc @${targetTagName} description.`, null, example);\n }\n }\n}, {\n contextDefaults: true,\n meta: {\n docs: {\n description: 'Requires that all functions have examples.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-example',\n },\n fixable: 'code',\n schema: [\n {\n additionalProperties: false,\n properties: {\n checkConstructors: {\n default: true,\n type: 'boolean',\n },\n checkGetters: {\n default: false,\n type: 'boolean',\n },\n checkSetters: {\n default: false,\n type: 'boolean',\n },\n contexts: {\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n comment: {\n type: 'string',\n },\n context: {\n type: 'string',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n enableFixer: {\n default: true,\n type: 'boolean',\n },\n exemptedBy: {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n exemptNoArguments: {\n default: false,\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":";;;;;;;AAAA;;;;eAEe,IAAAA,qBAAA,EAAa,CAAC;EAC3BC,OAD2B;EAE3BC,KAF2B;EAG3BC,MAH2B;EAI3BC;AAJ2B,CAAD,KAKtB;EACJ,IAAIA,KAAK,CAACC,SAAN,EAAJ,EAAuB;IACrB;EACD;;EAED,MAAM;IACJC,WAAW,GAAG,IADV;IAEJC,iBAAiB,GAAG;EAFhB,IAGFN,OAAO,CAACO,OAAR,CAAgB,CAAhB,KAAsB,EAH1B;EAKA,MAAMC,aAAa,GAAG,SAAtB;EAEA,MAAMC,gBAAgB,GAAGR,KAAK,CAACS,IAAN,CAAWC,MAAX,CAAkB,CAAC;IAC1CC;EAD0C,CAAD,KAErC;IACJ,OAAOA,GAAG,KAAKJ,aAAf;EACD,CAJwB,CAAzB;;EAMA,IAAI,CAACC,gBAAgB,CAACI,MAAtB,EAA8B;IAC5B,IAAIP,iBAAiB,IAAIH,KAAK,CAACW,mBAAN,EAArB,IACF,CAACX,KAAK,CAACY,SAAN,EADH,EAEE;MACA;IACD;;IAEDZ,KAAK,CAACa,WAAN,CAAmB,kBAAiBR,aAAc,eAAlD,EAAkE,IAAlE,EAAwE,MAAM;MAC5E,IAAIH,WAAJ,EAAiB;QACfF,KAAK,CAACc,MAAN,CAAaT,aAAb;MACD;IACF,CAJD;IAMA;EACD;;EAED,KAAK,MAAMU,OAAX,IAAsBT,gBAAtB,EAAwC;IACtC,MAAMU,cAAc,GAAI,GAAED,OAAO,CAACE,IAAK,IAAGjB,KAAK,CAACkB,iBAAN,CAAwBH,OAAxB,CAAiC,EAApD,CACpBI,IADoB,GAEpBC,KAFoB,CAEd,IAFc,EAGpBZ,MAHoB,CAGba,OAHa,CAAvB;;IAKA,IAAI,CAACL,cAAc,CAACN,MAApB,EAA4B;MAC1BX,MAAM,CAAE,kBAAiBM,aAAc,eAAjC,EAAiD,IAAjD,EAAuDU,OAAvD,CAAN;IACD;EACF;AACF,CAjDc,EAiDZ;EACDO,eAAe,EAAE,IADhB;EAEDC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJC,WAAW,EAAE,4CADT;MAEJC,GAAG,EAAE;IAFD,CADF;IAKJC,OAAO,EAAE,MALL;IAMJC,MAAM,EAAE,CACN;MACEC,oBAAoB,EAAE,KADxB;MAEEC,UAAU,EAAE;QACVC,iBAAiB,EAAE;UACjBC,OAAO,EAAE,IADQ;UAEjBC,IAAI,EAAE;QAFW,CADT;QAKVC,YAAY,EAAE;UACZF,OAAO,EAAE,KADG;UAEZC,IAAI,EAAE;QAFM,CALJ;QASVE,YAAY,EAAE;UACZH,OAAO,EAAE,KADG;UAEZC,IAAI,EAAE;QAFM,CATJ;QAaVG,QAAQ,EAAE;UACRC,KAAK,EAAE;YACLC,KAAK,EAAE,CACL;cACEL,IAAI,EAAE;YADR,CADK,EAIL;cACEJ,oBAAoB,EAAE,KADxB;cAEEC,UAAU,EAAE;gBACVS,OAAO,EAAE;kBACPN,IAAI,EAAE;gBADC,CADC;gBAIVpC,OAAO,EAAE;kBACPoC,IAAI,EAAE;gBADC;cAJC,CAFd;cAUEA,IAAI,EAAE;YAVR,CAJK;UADF,CADC;UAoBRA,IAAI,EAAE;QApBE,CAbA;QAmCV/B,WAAW,EAAE;UACX8B,OAAO,EAAE,IADE;UAEXC,IAAI,EAAE;QAFK,CAnCH;QAuCVO,UAAU,EAAE;UACVH,KAAK,EAAE;YACLJ,IAAI,EAAE;UADD,CADG;UAIVA,IAAI,EAAE;QAJI,CAvCF;QA6CV9B,iBAAiB,EAAE;UACjB6B,OAAO,EAAE,KADQ;UAEjBC,IAAI,EAAE;QAFW;MA7CT,CAFd;MAoDEA,IAAI,EAAE;IApDR,CADM,CANJ;IA8DJA,IAAI,EAAE;EA9DF;AAFL,CAjDY,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requireFileOverview.js","names":["defaultTags","file","initialCommentsOnly","mustExist","preventDuplicates","setDefaults","state","globalTags","hasDuplicates","hasTag","hasNonCommentBeforeTag","iterateJsdoc","jsdocNode","utils","context","tags","options","tagName","Object","keys","targetTagName","getPreferredTagName","hasDuplicate","hasNonComment","range","exit","entries","obj","getPreferredTagNameObject","blocked","reportSettings","replacement","iterateAllJsdocs","meta","docs","description","url","schema","additionalProperties","properties","patternProperties","type","nonComment","node"],"sources":["../../src/rules/requireFileOverview.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nconst defaultTags = {\n file: {\n initialCommentsOnly: true,\n mustExist: true,\n preventDuplicates: true,\n },\n};\n\nconst setDefaults = (state) => {\n // First iteration\n if (!state.globalTags) {\n state.globalTags = {};\n state.hasDuplicates = {};\n state.hasTag = {};\n state.hasNonCommentBeforeTag = {};\n }\n};\n\nexport default iterateJsdoc(({\n jsdocNode,\n state,\n utils,\n context,\n}) => {\n const {\n tags = defaultTags,\n } = context.options[0] || {};\n\n setDefaults(state);\n\n for (const tagName of Object.keys(tags)) {\n const targetTagName = utils.getPreferredTagName({\n tagName,\n });\n\n const hasTag = targetTagName && utils.hasTag(targetTagName);\n\n state.hasTag[tagName] = hasTag || state.hasTag[tagName];\n\n const hasDuplicate = state.hasDuplicates[tagName];\n\n if (hasDuplicate === false) {\n // Was marked before, so if a tag now, is a dupe\n state.hasDuplicates[tagName] = hasTag;\n } else if (!hasDuplicate && hasTag) {\n // No dupes set before, but has first tag, so change state\n // from `undefined` to `false` so can detect next time\n state.hasDuplicates[tagName] = false;\n state.hasNonCommentBeforeTag[tagName] = state.hasNonComment &&\n state.hasNonComment < jsdocNode.range[0];\n }\n }\n}, {\n exit ({\n context,\n state,\n utils,\n }) {\n setDefaults(state);\n const {\n tags = defaultTags,\n } = context.options[0] || {};\n\n for (const [\n tagName,\n {\n mustExist = false,\n preventDuplicates = false,\n initialCommentsOnly = false,\n },\n ] of Object.entries(tags)) {\n const obj = utils.getPreferredTagNameObject({\n tagName,\n });\n if (obj && obj.blocked) {\n utils.reportSettings(\n `\\`settings.jsdoc.tagNamePreference\\` cannot block @${obj.tagName} ` +\n 'for the `require-file-overview` rule',\n );\n } else {\n const targetTagName = obj && obj.replacement || obj;\n if (mustExist && !state.hasTag[tagName]) {\n utils.reportSettings(`Missing @${targetTagName}`);\n }\n\n if (preventDuplicates && state.hasDuplicates[tagName]) {\n utils.reportSettings(\n `Duplicate @${targetTagName}`,\n );\n }\n\n if (initialCommentsOnly &&\n state.hasNonCommentBeforeTag[tagName]\n ) {\n utils.reportSettings(\n `@${targetTagName} should be at the beginning of the file`,\n );\n }\n }\n }\n },\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Checks that all files have one `@file`, `@fileoverview`, or `@overview` tag at the beginning of the file.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-file-overview',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n tags: {\n patternProperties: {\n '.*': {\n additionalProperties: false,\n properties: {\n initialCommentsOnly: {\n type: 'boolean',\n },\n mustExist: {\n type: 'boolean',\n },\n preventDuplicates: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n },\n type: 'object',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n nonComment ({\n state,\n node,\n }) {\n if (!state.hasNonComment) {\n state.hasNonComment = node.range[0];\n }\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requireHyphenBeforeParamDescription.js","names":["iterateJsdoc","sourceCode","utils","report","context","jsdoc","jsdocNode","mainCircumstance","tags","options","checkHyphens","jsdocTag","targetTagName","circumstance","always","desc","getTagDescription","trim","startsWithHyphen","test","fixer","lineIndex","line","sourceLines","getText","split","description","descriptionIndex","lastIndexOf","replacementLine","slice","splice","replacement","join","replaceText","unwantedPart","exec","replace","length","forEachPreferredTag","tagEntries","Object","entries","tagName","preferredParamTag","getPreferredTagName","tag","some","tagNme","iterateAllJsdocs","meta","docs","url","fixable","schema","enum","type","additionalProperties","properties","anyOf","patternProperties"],"sources":["../../src/rules/requireHyphenBeforeParamDescription.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n sourceCode,\n utils,\n report,\n context,\n jsdoc,\n jsdocNode,\n}) => {\n const [\n mainCircumstance,\n {\n tags,\n } = {},\n ] = context.options;\n\n const checkHyphens = (jsdocTag, targetTagName, circumstance = mainCircumstance) => {\n const always = !circumstance || circumstance === 'always';\n const desc = utils.getTagDescription(jsdocTag);\n if (!desc.trim()) {\n return;\n }\n\n const startsWithHyphen = (/^\\s*-/u).test(desc);\n if (always) {\n if (!startsWithHyphen) {\n report(`There must be a hyphen before @${targetTagName} description.`, (fixer) => {\n const lineIndex = jsdocTag.line;\n const sourceLines = sourceCode.getText(jsdocNode).split('\\n');\n\n // Get start index of description, accounting for multi-line descriptions\n const description = desc.split('\\n')[0];\n const descriptionIndex = sourceLines[lineIndex].lastIndexOf(description);\n\n const replacementLine = sourceLines[lineIndex]\n .slice(0, descriptionIndex) + '- ' + description;\n sourceLines.splice(lineIndex, 1, replacementLine);\n const replacement = sourceLines.join('\\n');\n\n return fixer.replaceText(jsdocNode, replacement);\n }, jsdocTag);\n }\n } else if (startsWithHyphen) {\n report(`There must be no hyphen before @${targetTagName} description.`, (fixer) => {\n const [\n unwantedPart,\n ] = /^\\s*-\\s*/u.exec(desc);\n\n const replacement = sourceCode\n .getText(jsdocNode)\n .replace(desc, desc.slice(unwantedPart.length));\n\n return fixer.replaceText(jsdocNode, replacement);\n }, jsdocTag);\n }\n };\n\n utils.forEachPreferredTag('param', checkHyphens);\n if (tags) {\n const tagEntries = Object.entries(tags);\n for (const [\n tagName,\n circumstance,\n ] of tagEntries) {\n if (tagName === '*') {\n const preferredParamTag = utils.getPreferredTagName({\n tagName: 'param',\n });\n for (const {\n tag,\n } of jsdoc.tags) {\n if (tag === preferredParamTag || tagEntries.some(([\n tagNme,\n ]) => {\n return tagNme !== '*' && tagNme === tag;\n })) {\n continue;\n }\n\n utils.forEachPreferredTag(tag, (jsdocTag, targetTagName) => {\n checkHyphens(jsdocTag, targetTagName, circumstance);\n });\n }\n\n continue;\n }\n\n utils.forEachPreferredTag(tagName, (jsdocTag, targetTagName) => {\n checkHyphens(jsdocTag, targetTagName, circumstance);\n });\n }\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Requires a hyphen before the `@param` description.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-hyphen-before-param-description',\n },\n fixable: 'code',\n schema: [\n {\n enum: [\n 'always', 'never',\n ],\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n tags: {\n anyOf: [\n {\n patternProperties: {\n '.*': {\n enum: [\n 'always', 'never',\n ],\n type: 'string',\n },\n },\n type: 'object',\n },\n {\n enum: [\n 'any',\n ],\n type: 'string',\n },\n ],\n },\n },\n type: 'object',\n },\n ],\n type: 'layout',\n },\n});\n"],"mappings":"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"}
|
|
@@ -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","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","line","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 {\n start,\n } = node.loc;\n const loc = {\n end: {\n column: 0,\n line: start.line + 1,\n },\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"}
|
|
1
|
+
{"version":3,"file":"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","getSettings","requireOption","checkJsDoc","info","handler","node","some","count","underMinLine","getText","match","length","contextMinLineCount","find","ctxt","selector","jsDocNode","getJSDocComment","jsdocUtils","exemptSpeciaMethods","tags","isFunctionContext","isConstructor","functionParameterNames","getFunctionParameterNames","hasReturnValue","fix","fixer","lines","minLines","maxLines","baseNode","getReducedASTNode","decorator","getDecorator","indent","getIndent","text","loc","start","column","insertion","repeat","slice","insertTextBefore","report","end","line","messageId","Boolean","initModuleExports","initWindow","exported","exportParser","isUncommentedExport","hasOption","getContextObject","enforcedContexts","includes","parent","value","meta","docs","category","description","recommended","url","fixable","messages","missingJsDoc","schema"],"sources":["../../src/rules/requireJsdoc.js"],"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 {\n start,\n } = node.loc;\n const loc = {\n end: {\n column: 0,\n line: start.line + 1,\n },\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"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/rules/requireParam.js"],"names":["rootNamer","desiredRoots","currentIndex","name","idx","incremented","length","base","suffix","shift","jsdoc","utils","context","preferredTagName","getPreferredTagName","tagName","jsdocParameterNames","getJsdocTagsDeep","shallowJsdocParameterNames","filter","tag","includes","map","avoidDocs","hasTag","autoIncrementBase","checkRestProperty","checkDestructured","checkDestructuredRoots","checkTypesPattern","enableFixer","enableRootFixer","enableRestElementFixer","unnamedRootBase","useDefaultObjectProperties","options","checkTypesRegex","getRegexFromString","missingTags","functionParameterNames","getFunctionParameterNames","flattenedRoots","flattenRoots","names","paramIndex","hasParamIndex","cur","dropPathSegmentQuotes","String","getParamIndex","setParamIndex","entries","findExpectedIndex","jsdocTags","indexAtFunctionParams","remainingRoots","slice","foundIndex","findIndex","newAdd","some","remainingRoot","Array","isArray","tags","tagLineCount","source","tokens","end","nextRootName","namer","functionParameterIdx","functionParameterName","inc","matchedJsdoc","rootName","type","search","hasRestElement","hasPropertyRest","rests","notCheckingNames","paramName","find","fpn","emptyParamIdx","push","remove","fullParamName","notCheckingName","paramType","comparePaths","undefined","startsWith","funcParamName","restElement","fix","createTokens","tagIndex","sourceIndex","spliceCount","number","delimiter","description","lineEnd","postDelimiter","postName","postTag","postType","start","splice","firstNumber","src","offset","expectedIdx","fixer","missingTag","makeMultiline","reportJSDoc","contextDefaults","meta","docs","url","fixable","schema","additionalProperties","properties","default","checkConstructors","checkGetters","checkSetters","contexts","items","anyOf","comment","exemptedBy"],"mappings":"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","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\n/**\n * @template T\n * @param {string[]} desiredRoots\n * @param {number} currentIndex\n * @returns {[string, boolean, () => T]}\n */\nconst rootNamer = (desiredRoots, currentIndex) => {\n let name;\n let idx = currentIndex;\n const incremented = desiredRoots.length <= 1;\n if (incremented) {\n const base = desiredRoots[0];\n const suffix = idx++;\n name = `${base}${suffix}`;\n } else {\n name = desiredRoots.shift();\n }\n\n return [\n name, incremented, () => {\n return rootNamer(desiredRoots, idx);\n },\n ];\n};\n\n// eslint-disable-next-line complexity\nexport default iterateJsdoc(({\n jsdoc,\n utils,\n context,\n}) => {\n const preferredTagName = utils.getPreferredTagName({\n tagName: 'param',\n });\n if (!preferredTagName) {\n return;\n }\n\n const jsdocParameterNames = utils.getJsdocTagsDeep(preferredTagName);\n\n const shallowJsdocParameterNames = jsdocParameterNames.filter((tag) => {\n return !tag.name.includes('.');\n }).map((tag, idx) => {\n return {\n ...tag,\n idx,\n };\n });\n\n if (utils.avoidDocs()) {\n return;\n }\n\n // Param type is specified by type in @type\n if (utils.hasTag('type')) {\n return;\n }\n\n const {\n autoIncrementBase = 0,\n checkRestProperty = false,\n checkDestructured = true,\n checkDestructuredRoots = true,\n checkTypesPattern = '/^(?:[oO]bject|[aA]rray|PlainObject|Generic(?:Object|Array))$/',\n enableFixer = true,\n enableRootFixer = true,\n enableRestElementFixer = true,\n unnamedRootBase = [\n 'root',\n ],\n useDefaultObjectProperties = false,\n } = context.options[0] || {};\n\n const checkTypesRegex = utils.getRegexFromString(checkTypesPattern);\n\n const missingTags = [];\n const functionParameterNames = utils.getFunctionParameterNames(useDefaultObjectProperties);\n const flattenedRoots = utils.flattenRoots(functionParameterNames).names;\n\n const paramIndex = {};\n const hasParamIndex = (cur) => {\n return utils.dropPathSegmentQuotes(String(cur)) in paramIndex;\n };\n\n const getParamIndex = (cur) => {\n return paramIndex[utils.dropPathSegmentQuotes(String(cur))];\n };\n\n const setParamIndex = (cur, idx) => {\n paramIndex[utils.dropPathSegmentQuotes(String(cur))] = idx;\n };\n\n for (const [\n idx,\n cur,\n ] of flattenedRoots.entries()) {\n setParamIndex(cur, idx);\n }\n\n const findExpectedIndex = (jsdocTags, indexAtFunctionParams) => {\n const remainingRoots = functionParameterNames.slice(indexAtFunctionParams || 0);\n const foundIndex = jsdocTags.findIndex(({\n name,\n newAdd,\n }) => {\n return !newAdd && remainingRoots.some((remainingRoot) => {\n if (Array.isArray(remainingRoot)) {\n return remainingRoot[1].names.includes(name);\n }\n\n if (typeof remainingRoot === 'object') {\n return name === remainingRoot.name;\n }\n\n return name === remainingRoot;\n });\n });\n\n const tags = foundIndex > -1 ?\n jsdocTags.slice(0, foundIndex) :\n jsdocTags.filter(({\n tag,\n }) => {\n return tag === preferredTagName;\n });\n\n let tagLineCount = 0;\n for (const {\n source,\n } of tags) {\n for (const {\n tokens: {\n end,\n },\n } of source) {\n if (!end) {\n tagLineCount++;\n }\n }\n }\n\n return tagLineCount;\n };\n\n let [\n nextRootName,\n incremented,\n namer,\n ] = rootNamer([\n ...unnamedRootBase,\n ], autoIncrementBase);\n\n for (const [\n functionParameterIdx,\n functionParameterName,\n ] of functionParameterNames.entries()) {\n let inc;\n if (Array.isArray(functionParameterName)) {\n const matchedJsdoc = shallowJsdocParameterNames[functionParameterIdx] ||\n jsdocParameterNames[functionParameterIdx];\n\n let rootName;\n if (functionParameterName[0]) {\n rootName = functionParameterName[0];\n } else if (matchedJsdoc && matchedJsdoc.name) {\n rootName = matchedJsdoc.name;\n if (matchedJsdoc.type && matchedJsdoc.type.search(checkTypesRegex) === -1) {\n continue;\n }\n } else {\n rootName = nextRootName;\n inc = incremented;\n [\n nextRootName,\n incremented,\n namer,\n ] = namer();\n }\n\n const {\n hasRestElement,\n hasPropertyRest,\n rests,\n names,\n } = functionParameterName[1];\n const notCheckingNames = [];\n if (!enableRestElementFixer && hasRestElement) {\n continue;\n }\n\n if (!checkDestructuredRoots) {\n continue;\n }\n\n for (const [\n idx,\n paramName,\n ] of names.entries()) {\n // Add root if the root name is not in the docs (and is not already\n // in the tags to be fixed)\n if (!jsdocParameterNames.find(({\n name,\n }) => {\n return name === rootName;\n }) && !missingTags.find(({\n functionParameterName: fpn,\n }) => {\n return fpn === rootName;\n })) {\n const emptyParamIdx = jsdocParameterNames.findIndex(({\n name,\n }) => {\n return !name;\n });\n\n if (emptyParamIdx > -1) {\n missingTags.push({\n functionParameterIdx: emptyParamIdx,\n functionParameterName: rootName,\n inc,\n remove: true,\n });\n } else {\n missingTags.push({\n functionParameterIdx: hasParamIndex(rootName) ?\n getParamIndex(rootName) :\n getParamIndex(paramName),\n functionParameterName: rootName,\n inc,\n });\n }\n }\n\n if (!checkDestructured) {\n continue;\n }\n\n if (!checkRestProperty && rests[idx]) {\n continue;\n }\n\n const fullParamName = `${rootName}.${paramName}`;\n\n const notCheckingName = jsdocParameterNames.find(({\n name,\n type: paramType,\n }) => {\n return utils.comparePaths(name)(fullParamName) && paramType.search(checkTypesRegex) === -1 && paramType !== '';\n });\n\n if (notCheckingName !== undefined) {\n notCheckingNames.push(notCheckingName.name);\n }\n\n if (notCheckingNames.find((name) => {\n return fullParamName.startsWith(name);\n })) {\n continue;\n }\n\n if (jsdocParameterNames && !jsdocParameterNames.find(({\n name,\n }) => {\n return utils.comparePaths(name)(fullParamName);\n })) {\n missingTags.push({\n functionParameterIdx: getParamIndex(\n functionParameterName[0] ? fullParamName : paramName,\n ),\n functionParameterName: fullParamName,\n inc,\n type: hasRestElement && !hasPropertyRest ? '{...any}' : undefined,\n });\n }\n }\n\n continue;\n }\n\n let funcParamName;\n let type;\n if (typeof functionParameterName === 'object') {\n if (!enableRestElementFixer && functionParameterName.restElement) {\n continue;\n }\n\n funcParamName = functionParameterName.name;\n type = '{...any}';\n } else {\n funcParamName = functionParameterName;\n }\n\n if (jsdocParameterNames && !jsdocParameterNames.find(({\n name,\n }) => {\n return name === funcParamName;\n })) {\n missingTags.push({\n functionParameterIdx: getParamIndex(funcParamName),\n functionParameterName: funcParamName,\n inc,\n type,\n });\n }\n }\n\n const fix = ({\n functionParameterIdx,\n functionParameterName,\n remove,\n inc,\n type,\n }) => {\n if (inc && !enableRootFixer) {\n return;\n }\n\n const createTokens = (tagIndex, sourceIndex, spliceCount) => {\n // console.log(sourceIndex, tagIndex, jsdoc.tags, jsdoc.source);\n const tokens = {\n number: sourceIndex + 1,\n tokens: {\n delimiter: '*',\n description: '',\n end: '',\n lineEnd: '',\n name: functionParameterName,\n newAdd: true,\n postDelimiter: ' ',\n postName: '',\n postTag: ' ',\n postType: type ? ' ' : '',\n start: jsdoc.source[sourceIndex].tokens.start,\n tag: `@${preferredTagName}`,\n type: type ?? '',\n },\n };\n jsdoc.tags.splice(tagIndex, spliceCount, {\n name: functionParameterName,\n newAdd: true,\n source: [\n tokens,\n ],\n tag: preferredTagName,\n type: type ?? '',\n });\n const firstNumber = jsdoc.source[0].number;\n jsdoc.source.splice(sourceIndex, spliceCount, tokens);\n for (const [\n idx,\n src,\n ] of jsdoc.source.slice(sourceIndex).entries()) {\n src.number = firstNumber + sourceIndex + idx;\n }\n };\n\n const offset = jsdoc.source.findIndex(({\n tokens: {\n tag,\n end,\n },\n }) => {\n return tag || end;\n });\n if (remove) {\n createTokens(functionParameterIdx, offset + functionParameterIdx, 1);\n } else {\n const expectedIdx = findExpectedIndex(jsdoc.tags, functionParameterIdx);\n createTokens(expectedIdx, offset + expectedIdx, 0);\n }\n };\n\n const fixer = () => {\n for (const missingTag of missingTags) {\n fix(missingTag);\n }\n };\n\n if (missingTags.length && jsdoc.source.length === 1) {\n utils.makeMultiline();\n }\n\n for (const {\n functionParameterName,\n } of missingTags) {\n utils.reportJSDoc(\n `Missing JSDoc @${preferredTagName} \"${functionParameterName}\" declaration.`,\n null,\n enableFixer ? fixer : null,\n );\n }\n}, {\n contextDefaults: true,\n meta: {\n docs: {\n description: 'Requires that all function parameters are documented.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param',\n },\n fixable: 'code',\n schema: [\n {\n additionalProperties: false,\n properties: {\n autoIncrementBase: {\n default: 0,\n type: 'integer',\n },\n checkConstructors: {\n default: true,\n type: 'boolean',\n },\n checkDestructured: {\n default: true,\n type: 'boolean',\n },\n checkDestructuredRoots: {\n default: true,\n type: 'boolean',\n },\n checkGetters: {\n default: false,\n type: 'boolean',\n },\n checkRestProperty: {\n default: false,\n type: 'boolean',\n },\n checkSetters: {\n default: false,\n type: 'boolean',\n },\n checkTypesPattern: {\n type: 'string',\n },\n contexts: {\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n comment: {\n type: 'string',\n },\n context: {\n type: 'string',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n enableFixer: {\n type: 'boolean',\n },\n enableRestElementFixer: {\n type: 'boolean',\n },\n enableRootFixer: {\n type: 'boolean',\n },\n exemptedBy: {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n unnamedRootBase: {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n useDefaultObjectProperties: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"file":"requireParam.js"}
|
|
1
|
+
{"version":3,"file":"requireParam.js","names":["rootNamer","desiredRoots","currentIndex","name","idx","incremented","length","base","suffix","shift","iterateJsdoc","jsdoc","utils","context","preferredTagName","getPreferredTagName","tagName","jsdocParameterNames","getJsdocTagsDeep","shallowJsdocParameterNames","filter","tag","includes","map","avoidDocs","hasTag","autoIncrementBase","checkRestProperty","checkDestructured","checkDestructuredRoots","checkTypesPattern","enableFixer","enableRootFixer","enableRestElementFixer","unnamedRootBase","useDefaultObjectProperties","options","checkTypesRegex","getRegexFromString","missingTags","functionParameterNames","getFunctionParameterNames","flattenedRoots","flattenRoots","names","paramIndex","hasParamIndex","cur","dropPathSegmentQuotes","String","getParamIndex","setParamIndex","entries","findExpectedIndex","jsdocTags","indexAtFunctionParams","remainingRoots","slice","foundIndex","findIndex","newAdd","some","remainingRoot","Array","isArray","tags","tagLineCount","source","tokens","end","nextRootName","namer","functionParameterIdx","functionParameterName","inc","matchedJsdoc","rootName","type","search","hasRestElement","hasPropertyRest","rests","notCheckingNames","paramName","find","fpn","emptyParamIdx","push","remove","fullParamName","notCheckingName","paramType","comparePaths","undefined","startsWith","funcParamName","restElement","fix","createTokens","tagIndex","sourceIndex","spliceCount","number","delimiter","description","lineEnd","postDelimiter","postName","postTag","postType","start","splice","firstNumber","src","offset","expectedIdx","fixer","missingTag","makeMultiline","reportJSDoc","contextDefaults","meta","docs","url","fixable","schema","additionalProperties","properties","default","checkConstructors","checkGetters","checkSetters","contexts","items","anyOf","comment","exemptedBy"],"sources":["../../src/rules/requireParam.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\n/**\n * @template T\n * @param {string[]} desiredRoots\n * @param {number} currentIndex\n * @returns {[string, boolean, () => T]}\n */\nconst rootNamer = (desiredRoots, currentIndex) => {\n let name;\n let idx = currentIndex;\n const incremented = desiredRoots.length <= 1;\n if (incremented) {\n const base = desiredRoots[0];\n const suffix = idx++;\n name = `${base}${suffix}`;\n } else {\n name = desiredRoots.shift();\n }\n\n return [\n name, incremented, () => {\n return rootNamer(desiredRoots, idx);\n },\n ];\n};\n\n// eslint-disable-next-line complexity\nexport default iterateJsdoc(({\n jsdoc,\n utils,\n context,\n}) => {\n const preferredTagName = utils.getPreferredTagName({\n tagName: 'param',\n });\n if (!preferredTagName) {\n return;\n }\n\n const jsdocParameterNames = utils.getJsdocTagsDeep(preferredTagName);\n\n const shallowJsdocParameterNames = jsdocParameterNames.filter((tag) => {\n return !tag.name.includes('.');\n }).map((tag, idx) => {\n return {\n ...tag,\n idx,\n };\n });\n\n if (utils.avoidDocs()) {\n return;\n }\n\n // Param type is specified by type in @type\n if (utils.hasTag('type')) {\n return;\n }\n\n const {\n autoIncrementBase = 0,\n checkRestProperty = false,\n checkDestructured = true,\n checkDestructuredRoots = true,\n checkTypesPattern = '/^(?:[oO]bject|[aA]rray|PlainObject|Generic(?:Object|Array))$/',\n enableFixer = true,\n enableRootFixer = true,\n enableRestElementFixer = true,\n unnamedRootBase = [\n 'root',\n ],\n useDefaultObjectProperties = false,\n } = context.options[0] || {};\n\n const checkTypesRegex = utils.getRegexFromString(checkTypesPattern);\n\n const missingTags = [];\n const functionParameterNames = utils.getFunctionParameterNames(useDefaultObjectProperties);\n const flattenedRoots = utils.flattenRoots(functionParameterNames).names;\n\n const paramIndex = {};\n const hasParamIndex = (cur) => {\n return utils.dropPathSegmentQuotes(String(cur)) in paramIndex;\n };\n\n const getParamIndex = (cur) => {\n return paramIndex[utils.dropPathSegmentQuotes(String(cur))];\n };\n\n const setParamIndex = (cur, idx) => {\n paramIndex[utils.dropPathSegmentQuotes(String(cur))] = idx;\n };\n\n for (const [\n idx,\n cur,\n ] of flattenedRoots.entries()) {\n setParamIndex(cur, idx);\n }\n\n const findExpectedIndex = (jsdocTags, indexAtFunctionParams) => {\n const remainingRoots = functionParameterNames.slice(indexAtFunctionParams || 0);\n const foundIndex = jsdocTags.findIndex(({\n name,\n newAdd,\n }) => {\n return !newAdd && remainingRoots.some((remainingRoot) => {\n if (Array.isArray(remainingRoot)) {\n return remainingRoot[1].names.includes(name);\n }\n\n if (typeof remainingRoot === 'object') {\n return name === remainingRoot.name;\n }\n\n return name === remainingRoot;\n });\n });\n\n const tags = foundIndex > -1 ?\n jsdocTags.slice(0, foundIndex) :\n jsdocTags.filter(({\n tag,\n }) => {\n return tag === preferredTagName;\n });\n\n let tagLineCount = 0;\n for (const {\n source,\n } of tags) {\n for (const {\n tokens: {\n end,\n },\n } of source) {\n if (!end) {\n tagLineCount++;\n }\n }\n }\n\n return tagLineCount;\n };\n\n let [\n nextRootName,\n incremented,\n namer,\n ] = rootNamer([\n ...unnamedRootBase,\n ], autoIncrementBase);\n\n for (const [\n functionParameterIdx,\n functionParameterName,\n ] of functionParameterNames.entries()) {\n let inc;\n if (Array.isArray(functionParameterName)) {\n const matchedJsdoc = shallowJsdocParameterNames[functionParameterIdx] ||\n jsdocParameterNames[functionParameterIdx];\n\n let rootName;\n if (functionParameterName[0]) {\n rootName = functionParameterName[0];\n } else if (matchedJsdoc && matchedJsdoc.name) {\n rootName = matchedJsdoc.name;\n if (matchedJsdoc.type && matchedJsdoc.type.search(checkTypesRegex) === -1) {\n continue;\n }\n } else {\n rootName = nextRootName;\n inc = incremented;\n [\n nextRootName,\n incremented,\n namer,\n ] = namer();\n }\n\n const {\n hasRestElement,\n hasPropertyRest,\n rests,\n names,\n } = functionParameterName[1];\n const notCheckingNames = [];\n if (!enableRestElementFixer && hasRestElement) {\n continue;\n }\n\n if (!checkDestructuredRoots) {\n continue;\n }\n\n for (const [\n idx,\n paramName,\n ] of names.entries()) {\n // Add root if the root name is not in the docs (and is not already\n // in the tags to be fixed)\n if (!jsdocParameterNames.find(({\n name,\n }) => {\n return name === rootName;\n }) && !missingTags.find(({\n functionParameterName: fpn,\n }) => {\n return fpn === rootName;\n })) {\n const emptyParamIdx = jsdocParameterNames.findIndex(({\n name,\n }) => {\n return !name;\n });\n\n if (emptyParamIdx > -1) {\n missingTags.push({\n functionParameterIdx: emptyParamIdx,\n functionParameterName: rootName,\n inc,\n remove: true,\n });\n } else {\n missingTags.push({\n functionParameterIdx: hasParamIndex(rootName) ?\n getParamIndex(rootName) :\n getParamIndex(paramName),\n functionParameterName: rootName,\n inc,\n });\n }\n }\n\n if (!checkDestructured) {\n continue;\n }\n\n if (!checkRestProperty && rests[idx]) {\n continue;\n }\n\n const fullParamName = `${rootName}.${paramName}`;\n\n const notCheckingName = jsdocParameterNames.find(({\n name,\n type: paramType,\n }) => {\n return utils.comparePaths(name)(fullParamName) && paramType.search(checkTypesRegex) === -1 && paramType !== '';\n });\n\n if (notCheckingName !== undefined) {\n notCheckingNames.push(notCheckingName.name);\n }\n\n if (notCheckingNames.find((name) => {\n return fullParamName.startsWith(name);\n })) {\n continue;\n }\n\n if (jsdocParameterNames && !jsdocParameterNames.find(({\n name,\n }) => {\n return utils.comparePaths(name)(fullParamName);\n })) {\n missingTags.push({\n functionParameterIdx: getParamIndex(\n functionParameterName[0] ? fullParamName : paramName,\n ),\n functionParameterName: fullParamName,\n inc,\n type: hasRestElement && !hasPropertyRest ? '{...any}' : undefined,\n });\n }\n }\n\n continue;\n }\n\n let funcParamName;\n let type;\n if (typeof functionParameterName === 'object') {\n if (!enableRestElementFixer && functionParameterName.restElement) {\n continue;\n }\n\n funcParamName = functionParameterName.name;\n type = '{...any}';\n } else {\n funcParamName = functionParameterName;\n }\n\n if (jsdocParameterNames && !jsdocParameterNames.find(({\n name,\n }) => {\n return name === funcParamName;\n })) {\n missingTags.push({\n functionParameterIdx: getParamIndex(funcParamName),\n functionParameterName: funcParamName,\n inc,\n type,\n });\n }\n }\n\n const fix = ({\n functionParameterIdx,\n functionParameterName,\n remove,\n inc,\n type,\n }) => {\n if (inc && !enableRootFixer) {\n return;\n }\n\n const createTokens = (tagIndex, sourceIndex, spliceCount) => {\n // console.log(sourceIndex, tagIndex, jsdoc.tags, jsdoc.source);\n const tokens = {\n number: sourceIndex + 1,\n tokens: {\n delimiter: '*',\n description: '',\n end: '',\n lineEnd: '',\n name: functionParameterName,\n newAdd: true,\n postDelimiter: ' ',\n postName: '',\n postTag: ' ',\n postType: type ? ' ' : '',\n start: jsdoc.source[sourceIndex].tokens.start,\n tag: `@${preferredTagName}`,\n type: type ?? '',\n },\n };\n jsdoc.tags.splice(tagIndex, spliceCount, {\n name: functionParameterName,\n newAdd: true,\n source: [\n tokens,\n ],\n tag: preferredTagName,\n type: type ?? '',\n });\n const firstNumber = jsdoc.source[0].number;\n jsdoc.source.splice(sourceIndex, spliceCount, tokens);\n for (const [\n idx,\n src,\n ] of jsdoc.source.slice(sourceIndex).entries()) {\n src.number = firstNumber + sourceIndex + idx;\n }\n };\n\n const offset = jsdoc.source.findIndex(({\n tokens: {\n tag,\n end,\n },\n }) => {\n return tag || end;\n });\n if (remove) {\n createTokens(functionParameterIdx, offset + functionParameterIdx, 1);\n } else {\n const expectedIdx = findExpectedIndex(jsdoc.tags, functionParameterIdx);\n createTokens(expectedIdx, offset + expectedIdx, 0);\n }\n };\n\n const fixer = () => {\n for (const missingTag of missingTags) {\n fix(missingTag);\n }\n };\n\n if (missingTags.length && jsdoc.source.length === 1) {\n utils.makeMultiline();\n }\n\n for (const {\n functionParameterName,\n } of missingTags) {\n utils.reportJSDoc(\n `Missing JSDoc @${preferredTagName} \"${functionParameterName}\" declaration.`,\n null,\n enableFixer ? fixer : null,\n );\n }\n}, {\n contextDefaults: true,\n meta: {\n docs: {\n description: 'Requires that all function parameters are documented.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param',\n },\n fixable: 'code',\n schema: [\n {\n additionalProperties: false,\n properties: {\n autoIncrementBase: {\n default: 0,\n type: 'integer',\n },\n checkConstructors: {\n default: true,\n type: 'boolean',\n },\n checkDestructured: {\n default: true,\n type: 'boolean',\n },\n checkDestructuredRoots: {\n default: true,\n type: 'boolean',\n },\n checkGetters: {\n default: false,\n type: 'boolean',\n },\n checkRestProperty: {\n default: false,\n type: 'boolean',\n },\n checkSetters: {\n default: false,\n type: 'boolean',\n },\n checkTypesPattern: {\n type: 'string',\n },\n contexts: {\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n comment: {\n type: 'string',\n },\n context: {\n type: 'string',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n enableFixer: {\n type: 'boolean',\n },\n enableRestElementFixer: {\n type: 'boolean',\n },\n enableRootFixer: {\n type: 'boolean',\n },\n exemptedBy: {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n unnamedRootBase: {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n useDefaultObjectProperties: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requireParamDescription.js","names":["iterateJsdoc","report","utils","forEachPreferredTag","jsdocParameter","targetTagName","description","trim","name","contextDefaults","meta","docs","url","schema","additionalProperties","properties","contexts","items","anyOf","type","comment","context"],"sources":["../../src/rules/requireParamDescription.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n report,\n utils,\n}) => {\n utils.forEachPreferredTag('param', (jsdocParameter, targetTagName) => {\n if (!jsdocParameter.description.trim()) {\n report(\n `Missing JSDoc @${targetTagName} \"${jsdocParameter.name}\" description.`,\n null,\n jsdocParameter,\n );\n }\n });\n}, {\n contextDefaults: true,\n meta: {\n docs: {\n description: 'Requires that each `@param` tag has a `description` value.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-description',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n contexts: {\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n comment: {\n type: 'string',\n },\n context: {\n type: 'string',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":";;;;;;;AAAA;;;;eAEe,IAAAA,qBAAA,EAAa,CAAC;EAC3BC,MAD2B;EAE3BC;AAF2B,CAAD,KAGtB;EACJA,KAAK,CAACC,mBAAN,CAA0B,OAA1B,EAAmC,CAACC,cAAD,EAAiBC,aAAjB,KAAmC;IACpE,IAAI,CAACD,cAAc,CAACE,WAAf,CAA2BC,IAA3B,EAAL,EAAwC;MACtCN,MAAM,CACH,kBAAiBI,aAAc,KAAID,cAAc,CAACI,IAAK,gBADpD,EAEJ,IAFI,EAGJJ,cAHI,CAAN;IAKD;EACF,CARD;AASD,CAbc,EAaZ;EACDK,eAAe,EAAE,IADhB;EAEDC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJL,WAAW,EAAE,4DADT;MAEJM,GAAG,EAAE;IAFD,CADF;IAKJC,MAAM,EAAE,CACN;MACEC,oBAAoB,EAAE,KADxB;MAEEC,UAAU,EAAE;QACVC,QAAQ,EAAE;UACRC,KAAK,EAAE;YACLC,KAAK,EAAE,CACL;cACEC,IAAI,EAAE;YADR,CADK,EAIL;cACEL,oBAAoB,EAAE,KADxB;cAEEC,UAAU,EAAE;gBACVK,OAAO,EAAE;kBACPD,IAAI,EAAE;gBADC,CADC;gBAIVE,OAAO,EAAE;kBACPF,IAAI,EAAE;gBADC;cAJC,CAFd;cAUEA,IAAI,EAAE;YAVR,CAJK;UADF,CADC;UAoBRA,IAAI,EAAE;QApBE;MADA,CAFd;MA0BEA,IAAI,EAAE;IA1BR,CADM,CALJ;IAmCJA,IAAI,EAAE;EAnCF;AAFL,CAbY,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requireParamName.js","names":["iterateJsdoc","report","utils","forEachPreferredTag","jsdocParameter","targetTagName","tag","name","type","contextDefaults","meta","docs","description","url","schema","additionalProperties","properties","contexts","items","anyOf","comment","context"],"sources":["../../src/rules/requireParamName.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n report,\n utils,\n}) => {\n utils.forEachPreferredTag('param', (jsdocParameter, targetTagName) => {\n if (jsdocParameter.tag && jsdocParameter.name === '') {\n report(\n `There must be an identifier after @${targetTagName} ${jsdocParameter.type === '' ? 'type' : 'tag'}.`,\n null,\n jsdocParameter,\n );\n }\n });\n}, {\n contextDefaults: true,\n meta: {\n docs: {\n description: 'Requires that all function parameters have names.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-name',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n contexts: {\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n comment: {\n type: 'string',\n },\n context: {\n type: 'string',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":";;;;;;;AAAA;;;;eAEe,IAAAA,qBAAA,EAAa,CAAC;EAC3BC,MAD2B;EAE3BC;AAF2B,CAAD,KAGtB;EACJA,KAAK,CAACC,mBAAN,CAA0B,OAA1B,EAAmC,CAACC,cAAD,EAAiBC,aAAjB,KAAmC;IACpE,IAAID,cAAc,CAACE,GAAf,IAAsBF,cAAc,CAACG,IAAf,KAAwB,EAAlD,EAAsD;MACpDN,MAAM,CACH,sCAAqCI,aAAc,IAAGD,cAAc,CAACI,IAAf,KAAwB,EAAxB,GAA6B,MAA7B,GAAsC,KAAM,GAD/F,EAEJ,IAFI,EAGJJ,cAHI,CAAN;IAKD;EACF,CARD;AASD,CAbc,EAaZ;EACDK,eAAe,EAAE,IADhB;EAEDC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJC,WAAW,EAAE,mDADT;MAEJC,GAAG,EAAE;IAFD,CADF;IAKJC,MAAM,EAAE,CACN;MACEC,oBAAoB,EAAE,KADxB;MAEEC,UAAU,EAAE;QACVC,QAAQ,EAAE;UACRC,KAAK,EAAE;YACLC,KAAK,EAAE,CACL;cACEX,IAAI,EAAE;YADR,CADK,EAIL;cACEO,oBAAoB,EAAE,KADxB;cAEEC,UAAU,EAAE;gBACVI,OAAO,EAAE;kBACPZ,IAAI,EAAE;gBADC,CADC;gBAIVa,OAAO,EAAE;kBACPb,IAAI,EAAE;gBADC;cAJC,CAFd;cAUEA,IAAI,EAAE;YAVR,CAJK;UADF,CADC;UAoBRA,IAAI,EAAE;QApBE;MADA,CAFd;MA0BEA,IAAI,EAAE;IA1BR,CADM,CALJ;IAmCJA,IAAI,EAAE;EAnCF;AAFL,CAbY,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requireParamType.js","names":["iterateJsdoc","report","utils","forEachPreferredTag","jsdocParameter","targetTagName","type","name","contextDefaults","meta","docs","description","url","schema","additionalProperties","properties","contexts","items","anyOf","comment","context"],"sources":["../../src/rules/requireParamType.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n report,\n utils,\n}) => {\n utils.forEachPreferredTag('param', (jsdocParameter, targetTagName) => {\n if (!jsdocParameter.type) {\n report(\n `Missing JSDoc @${targetTagName} \"${jsdocParameter.name}\" type.`,\n null,\n jsdocParameter,\n );\n }\n });\n}, {\n contextDefaults: true,\n meta: {\n docs: {\n description: 'Requires that each `@param` tag has a `type` value.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-param-type',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n contexts: {\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n comment: {\n type: 'string',\n },\n context: {\n type: 'string',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":";;;;;;;AAAA;;;;eAEe,IAAAA,qBAAA,EAAa,CAAC;EAC3BC,MAD2B;EAE3BC;AAF2B,CAAD,KAGtB;EACJA,KAAK,CAACC,mBAAN,CAA0B,OAA1B,EAAmC,CAACC,cAAD,EAAiBC,aAAjB,KAAmC;IACpE,IAAI,CAACD,cAAc,CAACE,IAApB,EAA0B;MACxBL,MAAM,CACH,kBAAiBI,aAAc,KAAID,cAAc,CAACG,IAAK,SADpD,EAEJ,IAFI,EAGJH,cAHI,CAAN;IAKD;EACF,CARD;AASD,CAbc,EAaZ;EACDI,eAAe,EAAE,IADhB;EAEDC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJC,WAAW,EAAE,qDADT;MAEJC,GAAG,EAAE;IAFD,CADF;IAKJC,MAAM,EAAE,CACN;MACEC,oBAAoB,EAAE,KADxB;MAEEC,UAAU,EAAE;QACVC,QAAQ,EAAE;UACRC,KAAK,EAAE;YACLC,KAAK,EAAE,CACL;cACEZ,IAAI,EAAE;YADR,CADK,EAIL;cACEQ,oBAAoB,EAAE,KADxB;cAEEC,UAAU,EAAE;gBACVI,OAAO,EAAE;kBACPb,IAAI,EAAE;gBADC,CADC;gBAIVc,OAAO,EAAE;kBACPd,IAAI,EAAE;gBADC;cAJC,CAFd;cAUEA,IAAI,EAAE;YAVR,CAJK;UADF,CADC;UAoBRA,IAAI,EAAE;QApBE;MADA,CAFd;MA0BEA,IAAI,EAAE;IA1BR,CADM,CALJ;IAmCJA,IAAI,EAAE;EAnCF;AAFL,CAbY,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requireProperty.js","names":["iterateJsdoc","utils","propertyAssociatedTags","filterTags","tag","includes","length","targetTagName","getPreferredTagName","tagName","hasATag","propertyAssociatedTag","type","reportJSDoc","addTag","iterateAllJsdocs","meta","docs","description","url","fixable"],"sources":["../../src/rules/requireProperty.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n utils,\n}) => {\n const propertyAssociatedTags = utils.filterTags(({\n tag,\n }) => {\n return [\n 'typedef', 'namespace',\n ].includes(tag);\n });\n if (!propertyAssociatedTags.length) {\n return;\n }\n\n const targetTagName = utils.getPreferredTagName({\n tagName: 'property',\n });\n\n if (utils.hasATag([\n targetTagName,\n ])) {\n return;\n }\n\n for (const propertyAssociatedTag of propertyAssociatedTags) {\n if (![\n 'object', 'Object', 'PlainObject',\n ].includes(propertyAssociatedTag.type)) {\n continue;\n }\n\n utils.reportJSDoc(`Missing JSDoc @${targetTagName}.`, null, () => {\n utils.addTag(targetTagName);\n });\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property',\n },\n fixable: 'code',\n type: 'suggestion',\n },\n});\n"],"mappings":";;;;;;;AAAA;;;;eAEe,IAAAA,qBAAA,EAAa,CAAC;EAC3BC;AAD2B,CAAD,KAEtB;EACJ,MAAMC,sBAAsB,GAAGD,KAAK,CAACE,UAAN,CAAiB,CAAC;IAC/CC;EAD+C,CAAD,KAE1C;IACJ,OAAO,CACL,SADK,EACM,WADN,EAELC,QAFK,CAEID,GAFJ,CAAP;EAGD,CAN8B,CAA/B;;EAOA,IAAI,CAACF,sBAAsB,CAACI,MAA5B,EAAoC;IAClC;EACD;;EAED,MAAMC,aAAa,GAAGN,KAAK,CAACO,mBAAN,CAA0B;IAC9CC,OAAO,EAAE;EADqC,CAA1B,CAAtB;;EAIA,IAAIR,KAAK,CAACS,OAAN,CAAc,CAChBH,aADgB,CAAd,CAAJ,EAEI;IACF;EACD;;EAED,KAAK,MAAMI,qBAAX,IAAoCT,sBAApC,EAA4D;IAC1D,IAAI,CAAC,CACH,QADG,EACO,QADP,EACiB,aADjB,EAEHG,QAFG,CAEMM,qBAAqB,CAACC,IAF5B,CAAL,EAEwC;MACtC;IACD;;IAEDX,KAAK,CAACY,WAAN,CAAmB,kBAAiBN,aAAc,GAAlD,EAAsD,IAAtD,EAA4D,MAAM;MAChEN,KAAK,CAACa,MAAN,CAAaP,aAAb;IACD,CAFD;EAGD;AACF,CAnCc,EAmCZ;EACDQ,gBAAgB,EAAE,IADjB;EAEDC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJC,WAAW,EAAE,sIADT;MAEJC,GAAG,EAAE;IAFD,CADF;IAKJC,OAAO,EAAE,MALL;IAMJR,IAAI,EAAE;EANF;AAFL,CAnCY,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requirePropertyDescription.js","names":["iterateJsdoc","report","utils","forEachPreferredTag","jsdoc","targetTagName","description","trim","name","iterateAllJsdocs","meta","docs","url","type"],"sources":["../../src/rules/requirePropertyDescription.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n report,\n utils,\n}) => {\n utils.forEachPreferredTag('property', (jsdoc, targetTagName) => {\n if (!jsdoc.description.trim()) {\n report(\n `Missing JSDoc @${targetTagName} \"${jsdoc.name}\" description.`,\n null,\n jsdoc,\n );\n }\n });\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Requires that each `@property` tag has a `description` value.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property-description',\n },\n type: 'suggestion',\n },\n});\n"],"mappings":";;;;;;;AAAA;;;;eAEe,IAAAA,qBAAA,EAAa,CAAC;EAC3BC,MAD2B;EAE3BC;AAF2B,CAAD,KAGtB;EACJA,KAAK,CAACC,mBAAN,CAA0B,UAA1B,EAAsC,CAACC,KAAD,EAAQC,aAAR,KAA0B;IAC9D,IAAI,CAACD,KAAK,CAACE,WAAN,CAAkBC,IAAlB,EAAL,EAA+B;MAC7BN,MAAM,CACH,kBAAiBI,aAAc,KAAID,KAAK,CAACI,IAAK,gBAD3C,EAEJ,IAFI,EAGJJ,KAHI,CAAN;IAKD;EACF,CARD;AASD,CAbc,EAaZ;EACDK,gBAAgB,EAAE,IADjB;EAEDC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJL,WAAW,EAAE,+DADT;MAEJM,GAAG,EAAE;IAFD,CADF;IAKJC,IAAI,EAAE;EALF;AAFL,CAbY,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requirePropertyName.js","names":["iterateJsdoc","report","utils","forEachPreferredTag","jsdoc","targetTagName","tag","name","type","iterateAllJsdocs","meta","docs","description","url"],"sources":["../../src/rules/requirePropertyName.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n report,\n utils,\n}) => {\n utils.forEachPreferredTag('property', (jsdoc, targetTagName) => {\n if (jsdoc.tag && jsdoc.name === '') {\n report(\n `There must be an identifier after @${targetTagName} ${jsdoc.type === '' ? 'type' : 'tag'}.`,\n null,\n jsdoc,\n );\n }\n });\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Requires that all function `@property` tags have names.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property-name',\n },\n type: 'suggestion',\n },\n});\n"],"mappings":";;;;;;;AAAA;;;;eAEe,IAAAA,qBAAA,EAAa,CAAC;EAC3BC,MAD2B;EAE3BC;AAF2B,CAAD,KAGtB;EACJA,KAAK,CAACC,mBAAN,CAA0B,UAA1B,EAAsC,CAACC,KAAD,EAAQC,aAAR,KAA0B;IAC9D,IAAID,KAAK,CAACE,GAAN,IAAaF,KAAK,CAACG,IAAN,KAAe,EAAhC,EAAoC;MAClCN,MAAM,CACH,sCAAqCI,aAAc,IAAGD,KAAK,CAACI,IAAN,KAAe,EAAf,GAAoB,MAApB,GAA6B,KAAM,GADtF,EAEJ,IAFI,EAGJJ,KAHI,CAAN;IAKD;EACF,CARD;AASD,CAbc,EAaZ;EACDK,gBAAgB,EAAE,IADjB;EAEDC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJC,WAAW,EAAE,yDADT;MAEJC,GAAG,EAAE;IAFD,CADF;IAKJL,IAAI,EAAE;EALF;AAFL,CAbY,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requirePropertyType.js","names":["iterateJsdoc","report","utils","forEachPreferredTag","jsdoc","targetTagName","type","name","iterateAllJsdocs","meta","docs","description","url"],"sources":["../../src/rules/requirePropertyType.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n report,\n utils,\n}) => {\n utils.forEachPreferredTag('property', (jsdoc, targetTagName) => {\n if (!jsdoc.type) {\n report(\n `Missing JSDoc @${targetTagName} \"${jsdoc.name}\" type.`,\n null,\n jsdoc,\n );\n }\n });\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Requires that each `@property` tag has a `type` value.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-property-type',\n },\n type: 'suggestion',\n },\n});\n"],"mappings":";;;;;;;AAAA;;;;eAEe,IAAAA,qBAAA,EAAa,CAAC;EAC3BC,MAD2B;EAE3BC;AAF2B,CAAD,KAGtB;EACJA,KAAK,CAACC,mBAAN,CAA0B,UAA1B,EAAsC,CAACC,KAAD,EAAQC,aAAR,KAA0B;IAC9D,IAAI,CAACD,KAAK,CAACE,IAAX,EAAiB;MACfL,MAAM,CACH,kBAAiBI,aAAc,KAAID,KAAK,CAACG,IAAK,SAD3C,EAEJ,IAFI,EAGJH,KAHI,CAAN;IAKD;EACF,CARD;AASD,CAbc,EAaZ;EACDI,gBAAgB,EAAE,IADjB;EAEDC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJC,WAAW,EAAE,wDADT;MAEJC,GAAG,EAAE;IAFD,CADF;IAKJN,IAAI,EAAE;EALF;AAFL,CAbY,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requireReturns.js","names":["canSkip","utils","hasATag","avoidDocs","iterateJsdoc","report","context","forceRequireReturn","forceReturnsWithAsync","options","tagName","getPreferredTagName","tags","getTags","length","iteratingFunction","isIteratingFunction","tag","missingReturnTag","shouldReport","isVirtualFunction","isAsync","hasTag","hasValueOrExecutorHasNonEmptyResolveValue","contextDefaults","meta","docs","description","url","schema","additionalProperties","properties","checkConstructors","default","type","checkGetters","contexts","items","anyOf","comment","exemptedBy"],"sources":["../../src/rules/requireReturns.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\n/**\n * We can skip checking for a return value, in case the documentation is inherited\n * or the method is either a constructor or an abstract method.\n *\n * In either of these cases the return value is optional or not defined.\n *\n * @param {*} utils\n * a reference to the utils which are used to probe if a tag is present or not.\n * @returns {boolean}\n * true in case deep checking can be skipped; otherwise false.\n */\nconst canSkip = (utils) => {\n return utils.hasATag([\n // inheritdoc implies that all documentation is inherited\n // see https://jsdoc.app/tags-inheritdoc.html\n //\n // Abstract methods are by definition incomplete,\n // so it is not an error if it declares a return value but does not implement it.\n 'abstract',\n 'virtual',\n\n // Constructors do not have a return value by definition (https://jsdoc.app/tags-class.html)\n // So we can bail out here, too.\n 'class',\n 'constructor',\n\n // Return type is specified by type in @type\n 'type',\n\n // This seems to imply a class as well\n 'interface',\n ]) ||\n utils.avoidDocs();\n};\n\nexport default iterateJsdoc(({\n report,\n utils,\n context,\n}) => {\n const {\n forceRequireReturn = false,\n forceReturnsWithAsync = false,\n } = context.options[0] || {};\n\n // A preflight check. We do not need to run a deep check\n // in case the @returns comment is optional or undefined.\n if (canSkip(utils)) {\n return;\n }\n\n const tagName = utils.getPreferredTagName({\n tagName: 'returns',\n });\n if (!tagName) {\n return;\n }\n\n const tags = utils.getTags(tagName);\n\n if (tags.length > 1) {\n report(`Found more than one @${tagName} declaration.`);\n }\n\n const iteratingFunction = utils.isIteratingFunction();\n\n // In case the code returns something, we expect a return value in JSDoc.\n const [\n tag,\n ] = tags;\n const missingReturnTag = typeof tag === 'undefined' || tag === null;\n\n const shouldReport = () => {\n if (!missingReturnTag) {\n return false;\n }\n\n if (forceRequireReturn && (\n iteratingFunction || utils.isVirtualFunction()\n )) {\n return true;\n }\n\n const isAsync = !iteratingFunction && utils.hasTag('async') ||\n iteratingFunction && utils.isAsync();\n\n if (forceReturnsWithAsync && isAsync) {\n return true;\n }\n\n return !isAsync && iteratingFunction && utils.hasValueOrExecutorHasNonEmptyResolveValue(\n forceReturnsWithAsync,\n );\n };\n\n if (shouldReport()) {\n report(`Missing JSDoc @${tagName} declaration.`);\n }\n}, {\n contextDefaults: true,\n meta: {\n docs: {\n description: 'Requires that returns are documented.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n checkConstructors: {\n default: false,\n type: 'boolean',\n },\n checkGetters: {\n default: true,\n type: 'boolean',\n },\n contexts: {\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n comment: {\n type: 'string',\n },\n context: {\n type: 'string',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n exemptedBy: {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n forceRequireReturn: {\n default: false,\n type: 'boolean',\n },\n forceReturnsWithAsync: {\n default: false,\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requireReturnsCheck.js","names":["canSkip","utils","settings","voidingTags","mode","push","hasATag","isConstructor","classHasTag","iterateJsdoc","context","node","report","exemptAsync","exemptGenerators","reportMissingReturnForUndefinedTypes","options","isAsync","tagName","getPreferredTagName","tags","getTags","length","tag","returnNever","type","trim","hasValueOrExecutorHasNonEmptyResolveValue","hasDefinedTypeTag","generator","meta","docs","description","url","schema","additionalProperties","properties","default"],"sources":["../../src/rules/requireReturnsCheck.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nconst canSkip = (utils, settings) => {\n const voidingTags = [\n // An abstract function is by definition incomplete\n // so it is perfectly fine if a return is documented but\n // not present within the function.\n // A subclass may inherit the doc and implement the\n // missing return.\n 'abstract',\n 'virtual',\n\n // A constructor function returns `this` by default, so may be `@returns`\n // tag indicating this but no explicit return\n 'class',\n 'constructor',\n 'interface',\n ];\n\n if (settings.mode === 'closure') {\n // Structural Interface in GCC terms, equivalent to @interface tag as far as this rule is concerned\n voidingTags.push('record');\n }\n\n return utils.hasATag(voidingTags) ||\n utils.isConstructor() ||\n utils.classHasTag('interface') ||\n settings.mode === 'closure' && utils.classHasTag('record');\n};\n\nexport default iterateJsdoc(({\n context,\n node,\n report,\n settings,\n utils,\n}) => {\n const {\n exemptAsync = true,\n exemptGenerators = settings.mode === 'typescript',\n reportMissingReturnForUndefinedTypes = false,\n } = context.options[0] || {};\n\n if (canSkip(utils, settings)) {\n return;\n }\n\n if (exemptAsync && utils.isAsync()) {\n return;\n }\n\n const tagName = utils.getPreferredTagName({\n tagName: 'returns',\n });\n if (!tagName) {\n return;\n }\n\n const tags = utils.getTags(tagName);\n\n if (tags.length === 0) {\n return;\n }\n\n if (tags.length > 1) {\n report(`Found more than one @${tagName} declaration.`);\n\n return;\n }\n\n const [\n tag,\n ] = tags;\n\n const returnNever = tag.type.trim() === 'never';\n\n if (returnNever && utils.hasValueOrExecutorHasNonEmptyResolveValue(false)) {\n report(`JSDoc @${tagName} declaration set with \"never\" but return expression is present in function.`);\n\n return;\n }\n\n // In case a return value is declared in JSDoc, we also expect one in the code.\n if (\n !returnNever &&\n (\n reportMissingReturnForUndefinedTypes ||\n utils.hasDefinedTypeTag(tag)\n ) &&\n !utils.hasValueOrExecutorHasNonEmptyResolveValue(\n exemptAsync,\n ) && (!exemptGenerators || !node.generator)\n ) {\n report(`JSDoc @${tagName} declaration present but return expression not available in function.`);\n }\n}, {\n meta: {\n docs: {\n description: 'Requires a return statement in function body if a `@returns` tag is specified in jsdoc comment.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-check',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n exemptAsync: {\n default: true,\n type: 'boolean',\n },\n exemptGenerators: {\n type: 'boolean',\n },\n reportMissingReturnForUndefinedTypes: {\n default: false,\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requireReturnsDescription.js","names":["iterateJsdoc","report","utils","forEachPreferredTag","jsdocTag","targetTagName","type","trim","includes","description","contextDefaults","meta","docs","url","schema","additionalProperties","properties","contexts","items","anyOf","comment","context"],"sources":["../../src/rules/requireReturnsDescription.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n report,\n utils,\n}) => {\n utils.forEachPreferredTag('returns', (jsdocTag, targetTagName) => {\n const type = jsdocTag.type && jsdocTag.type.trim();\n\n if ([\n 'void', 'undefined', 'Promise<void>', 'Promise<undefined>',\n ].includes(type)) {\n return;\n }\n\n if (!jsdocTag.description.trim()) {\n report(`Missing JSDoc @${targetTagName} description.`, null, jsdocTag);\n }\n });\n}, {\n contextDefaults: true,\n meta: {\n docs: {\n description: 'Requires that the `@returns` tag has a `description` value.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-returns-description',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n contexts: {\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n comment: {\n type: 'string',\n },\n context: {\n type: 'string',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":";;;;;;;AAAA;;;;eAEe,IAAAA,qBAAA,EAAa,CAAC;EAC3BC,MAD2B;EAE3BC;AAF2B,CAAD,KAGtB;EACJA,KAAK,CAACC,mBAAN,CAA0B,SAA1B,EAAqC,CAACC,QAAD,EAAWC,aAAX,KAA6B;IAChE,MAAMC,IAAI,GAAGF,QAAQ,CAACE,IAAT,IAAiBF,QAAQ,CAACE,IAAT,CAAcC,IAAd,EAA9B;;IAEA,IAAI,CACF,MADE,EACM,WADN,EACmB,eADnB,EACoC,oBADpC,EAEFC,QAFE,CAEOF,IAFP,CAAJ,EAEkB;MAChB;IACD;;IAED,IAAI,CAACF,QAAQ,CAACK,WAAT,CAAqBF,IAArB,EAAL,EAAkC;MAChCN,MAAM,CAAE,kBAAiBI,aAAc,eAAjC,EAAiD,IAAjD,EAAuDD,QAAvD,CAAN;IACD;EACF,CAZD;AAaD,CAjBc,EAiBZ;EACDM,eAAe,EAAE,IADhB;EAEDC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJH,WAAW,EAAE,6DADT;MAEJI,GAAG,EAAE;IAFD,CADF;IAKJC,MAAM,EAAE,CACN;MACEC,oBAAoB,EAAE,KADxB;MAEEC,UAAU,EAAE;QACVC,QAAQ,EAAE;UACRC,KAAK,EAAE;YACLC,KAAK,EAAE,CACL;cACEb,IAAI,EAAE;YADR,CADK,EAIL;cACES,oBAAoB,EAAE,KADxB;cAEEC,UAAU,EAAE;gBACVI,OAAO,EAAE;kBACPd,IAAI,EAAE;gBADC,CADC;gBAIVe,OAAO,EAAE;kBACPf,IAAI,EAAE;gBADC;cAJC,CAFd;cAUEA,IAAI,EAAE;YAVR,CAJK;UADF,CADC;UAoBRA,IAAI,EAAE;QApBE;MADA,CAFd;MA0BEA,IAAI,EAAE;IA1BR,CADM,CALJ;IAmCJA,IAAI,EAAE;EAnCF;AAFL,CAjBY,C"}
|