projecte_ionic/node_modules/eslint-plugin-jsdoc/dist/rules/requireHyphenBeforeParamDescription.js.map
2022-02-09 18:30:03 +01:00

1 line
7.6 KiB
Plaintext
Executable file

{"version":3,"sources":["../../src/rules/requireHyphenBeforeParamDescription.js"],"names":["sourceCode","utils","report","context","jsdoc","jsdocNode","mainCircumstance","tags","options","checkHyphens","jsdocTag","targetTagName","circumstance","always","description","startsWith","fixer","lineIndex","line","sourceLines","getText","split","descriptionIndex","lastIndexOf","replacementLine","slice","splice","replacement","join","replaceText","unwantedPart","exec","replace","length","forEachPreferredTag","tagEntries","Object","entries","forEach","tagName","preferredParamTag","getPreferredTagName","tag","some","tagNme","iterateAllJsdocs","meta","docs","url","fixable","schema","enum","type","additionalProperties","properties","anyOf","patternProperties"],"mappings":"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","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n sourceCode,\n utils,\n report,\n context,\n jsdoc,\n jsdocNode,\n}) => {\n const [mainCircumstance, {tags} = {}] = context.options;\n\n const checkHyphens = (jsdocTag, targetTagName, circumstance = mainCircumstance) => {\n const always = !circumstance || circumstance === 'always';\n if (!jsdocTag.description) {\n return;\n }\n\n if (always) {\n if (!jsdocTag.description.startsWith('-')) {\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 = jsdocTag.description.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 (jsdocTag.description.startsWith('-')) {\n report(`There must be no hyphen before @${targetTagName} description.`, (fixer) => {\n const [unwantedPart] = /-\\s*/u.exec(jsdocTag.description);\n\n const replacement = sourceCode\n .getText(jsdocNode)\n .replace(jsdocTag.description, jsdocTag.description.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 tagEntries.forEach(([tagName, circumstance]) => {\n if (tagName === '*') {\n const preferredParamTag = utils.getPreferredTagName({tagName: 'param'});\n (jsdoc.tags || []).forEach(({tag}) => {\n if (tag === preferredParamTag || tagEntries.some(([tagNme]) => {\n return tagNme !== '*' && tagNme === tag;\n })) {\n return;\n }\n utils.forEachPreferredTag(tag, (jsdocTag, targetTagName) => {\n checkHyphens(jsdocTag, targetTagName, circumstance);\n });\n });\n\n return;\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: ['always', 'never'],\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n tags: {\n anyOf: [\n {\n patternProperties: {\n '.*': {\n enum: ['always', 'never'],\n type: 'string',\n },\n },\n type: 'object',\n },\n {\n enum: ['any'],\n type: 'string',\n },\n ],\n },\n },\n type: 'object',\n },\n ],\n type: 'layout',\n },\n});\n"],"file":"requireHyphenBeforeParamDescription.js"}