1 line
20 KiB
Plaintext

{"version":3,"file":"convertToJsdocComments.cjs","names":["_iterateJsdoc","_interopRequireWildcard","require","_jsdocUtils","_jsdoccomment","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_default","exports","create","context","sourceCode","getSourceCode","settings","getSettings","contexts","contextsAfter","contextsBeforeAndAfter","enableFixer","enforceJsdocLineStyle","lineOrBlockStyle","allowedPrefixes","options","reportingNonJsdoc","report","messageId","comment","node","fixer","_comment$loc","_comment$loc2","loc","end","column","line","start","fix","getFixer","addComment","ctxts","lines","minLines","maxLines","baseNode","getReducedASTNode","decorator","getDecorator","indent","getIndent","text","getText","inlineCommentBlock","find","contxt","ctxt","type","reportings","checkNonJsdoc","_info","_handler","getNonJsdocComment","some","prefix","value","trimStart","startsWith","insertion","trim","trimEnd","repeat","replaceText","checkNonJsdocAfter","getFollowingComment","slice","remove","insertTextBefore","parent","getContextObject","enforcedContexts","meta","fixable","messages","blockCommentsJsdocStyle","lineCommentsJsdocStyle","docs","description","url","schema","additionalProperties","properties","items","anyOf","enum","module"],"sources":["../../src/rules/convertToJsdocComments.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\nimport {\n getSettings,\n} from '../iterateJsdoc.js';\nimport {\n getIndent,\n getContextObject,\n enforcedContexts,\n} from '../jsdocUtils.js';\nimport {\n getNonJsdocComment,\n getDecorator,\n getReducedASTNode,\n getFollowingComment,\n} from '@es-joy/jsdoccomment';\n\n/** @type {import('eslint').Rule.RuleModule} */\nexport default {\n create (context) {\n /**\n * @typedef {import('eslint').AST.Token | import('estree').Comment | {\n * type: import('eslint').AST.TokenType|\"Line\"|\"Block\"|\"Shebang\",\n * range: [number, number],\n * value: string\n * }} Token\n */\n\n /**\n * @callback AddComment\n * @param {boolean|undefined} inlineCommentBlock\n * @param {Token} comment\n * @param {string} indent\n * @param {number} lines\n * @param {import('eslint').Rule.RuleFixer} fixer\n */\n\n /* c8 ignore next -- Fallback to deprecated method */\n const {\n sourceCode = context.getSourceCode(),\n } = context;\n const settings = getSettings(context);\n if (!settings) {\n return {};\n }\n\n const {\n contexts = settings.contexts || [],\n contextsAfter = /** @type {string[]} */ ([]),\n contextsBeforeAndAfter = [\n 'VariableDeclarator', 'TSPropertySignature', 'PropertyDefinition'\n ],\n enableFixer = true,\n enforceJsdocLineStyle = 'multi',\n lineOrBlockStyle = 'both',\n allowedPrefixes = ['@ts-', 'istanbul ', 'c8 ', 'v8 ', 'eslint', 'prettier-']\n } = context.options[0] ?? {};\n\n let reportingNonJsdoc = false;\n\n /**\n * @param {string} messageId\n * @param {import('estree').Comment|Token} comment\n * @param {import('eslint').Rule.Node} node\n * @param {import('eslint').Rule.ReportFixer} fixer\n */\n const report = (messageId, comment, node, fixer) => {\n const loc = {\n end: {\n column: 0,\n /* c8 ignore next 2 -- Guard */\n // @ts-expect-error Ok\n line: (comment.loc?.start?.line ?? 1),\n },\n start: {\n column: 0,\n /* c8 ignore next 2 -- Guard */\n // @ts-expect-error Ok\n line: (comment.loc?.start?.line ?? 1)\n },\n };\n\n context.report({\n fix: enableFixer ? fixer : null,\n loc,\n messageId,\n node,\n });\n };\n\n /**\n * @param {import('eslint').Rule.Node} node\n * @param {import('eslint').AST.Token | import('estree').Comment | {\n * type: import('eslint').AST.TokenType|\"Line\"|\"Block\"|\"Shebang\",\n * range: [number, number],\n * value: string\n * }} comment\n * @param {AddComment} addComment\n * @param {import('../iterateJsdoc.js').Context[]} ctxts\n */\n const getFixer = (node, comment, addComment, ctxts) => {\n return /** @type {import('eslint').Rule.ReportFixer} */ (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 =\n /**\n * @type {import('@typescript-eslint/types').TSESTree.Node|import('eslint').Rule.Node}\n */ (\n getReducedASTNode(node, sourceCode)\n );\n\n const decorator = getDecorator(\n /** @type {import('eslint').Rule.Node} */\n (baseNode)\n );\n if (decorator) {\n baseNode = /** @type {import('@typescript-eslint/types').TSESTree.Decorator} */ (\n decorator\n );\n }\n\n const indent = getIndent({\n text: sourceCode.getText(\n /** @type {import('eslint').Rule.Node} */ (baseNode),\n /** @type {import('eslint').AST.SourceLocation} */\n (\n /** @type {import('eslint').Rule.Node} */ (baseNode).loc\n ).start.column,\n ),\n });\n\n const {\n inlineCommentBlock,\n } =\n /**\n * @type {{\n * context: string,\n * inlineCommentBlock: boolean,\n * minLineCount: import('../iterateJsdoc.js').Integer\n * }[]}\n */ (ctxts).find((contxt) => {\n if (typeof contxt === 'string') {\n return false;\n }\n\n const {\n context: ctxt,\n } = contxt;\n return ctxt === node.type;\n }) || {};\n\n return addComment(inlineCommentBlock, comment, indent, lines, fixer);\n };\n };\n\n /**\n * @param {import('eslint').AST.Token | import('estree').Comment | {\n * type: import('eslint').AST.TokenType|\"Line\"|\"Block\"|\"Shebang\",\n * range: [number, number],\n * value: string\n * }} comment\n * @param {import('eslint').Rule.Node} node\n * @param {AddComment} addComment\n * @param {import('../iterateJsdoc.js').Context[]} ctxts\n */\n const reportings = (comment, node, addComment, ctxts) => {\n const fixer = getFixer(node, comment, addComment, ctxts);\n\n if (comment.type === 'Block') {\n if (lineOrBlockStyle === 'line') {\n return;\n }\n report('blockCommentsJsdocStyle', comment, node, fixer);\n return;\n }\n\n if (comment.type === 'Line') {\n if (lineOrBlockStyle === 'block') {\n return;\n }\n report('lineCommentsJsdocStyle', comment, node, fixer);\n }\n };\n\n /**\n * @type {import('../iterateJsdoc.js').CheckJsdoc}\n */\n const checkNonJsdoc = (_info, _handler, node) => {\n const comment = getNonJsdocComment(sourceCode, node, settings);\n\n if (\n !comment ||\n /** @type {string[]} */\n (allowedPrefixes).some((prefix) => {\n return comment.value.trimStart().startsWith(prefix);\n })\n ) {\n return;\n }\n\n reportingNonJsdoc = true;\n\n /** @type {AddComment} */\n const addComment = (inlineCommentBlock, comment, indent, lines, fixer) => {\n const insertion = (\n inlineCommentBlock || enforceJsdocLineStyle === 'single'\n ? `/** ${comment.value.trim()} `\n : `/**\\n${indent}*${comment.value.trimEnd()}\\n${indent}`\n ) +\n `*/${'\\n'.repeat((lines || 1) - 1)}`;\n\n return fixer.replaceText(\n /** @type {import('eslint').AST.Token} */\n (comment),\n insertion,\n );\n };\n\n reportings(comment, node, addComment, contexts);\n };\n\n /**\n * @param {import('eslint').Rule.Node} node\n * @param {import('../iterateJsdoc.js').Context[]} ctxts\n */\n const checkNonJsdocAfter = (node, ctxts) => {\n const comment = getFollowingComment(sourceCode, node);\n\n if (\n !comment ||\n comment.value.startsWith('*') ||\n /** @type {string[]} */\n (allowedPrefixes).some((prefix) => {\n return comment.value.trimStart().startsWith(prefix);\n })\n ) {\n return;\n }\n\n /** @type {AddComment} */\n const addComment = (inlineCommentBlock, comment, indent, lines, fixer) => {\n const insertion = (\n inlineCommentBlock || enforceJsdocLineStyle === 'single'\n ? `/** ${comment.value.trim()} `\n : `/**\\n${indent}*${comment.value.trimEnd()}\\n${indent}`\n ) +\n `*/${'\\n'.repeat((lines || 1) - 1)}${lines ? `\\n${indent.slice(1)}` : ' '}`;\n\n return [fixer.remove(\n /** @type {import('eslint').AST.Token} */\n (comment)\n ), fixer.insertTextBefore(\n node.type === 'VariableDeclarator' ? node.parent : node,\n insertion,\n )];\n };\n\n reportings(comment, node, addComment, ctxts);\n };\n\n // Todo: add contexts to check after (and handle if want both before and after)\n return {\n ...getContextObject(\n enforcedContexts(context, true, settings),\n checkNonJsdoc,\n ),\n ...getContextObject(\n contextsAfter,\n (_info, _handler, node) => {\n checkNonJsdocAfter(node, contextsAfter);\n },\n ),\n ...getContextObject(\n contextsBeforeAndAfter,\n (_info, _handler, node) => {\n checkNonJsdoc({}, null, node);\n if (!reportingNonJsdoc) {\n checkNonJsdocAfter(node, contextsBeforeAndAfter);\n }\n }\n )\n };\n },\n meta: {\n fixable: 'code',\n\n messages: {\n blockCommentsJsdocStyle: 'Block comments should be JSDoc-style.',\n lineCommentsJsdocStyle: 'Line comments should be JSDoc-style.',\n },\n\n docs: {\n description: 'Converts non-JSDoc comments preceding or following nodes into JSDoc ones',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/convert-to-jsdoc-comments.md#repos-sticky-header',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n allowedPrefixes: {\n type: 'array',\n items: {\n type: 'string'\n }\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 contextsAfter: {\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 contextsBeforeAndAfter: {\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 type: 'boolean'\n },\n enforceJsdocLineStyle: {\n type: 'string',\n enum: ['multi', 'single']\n },\n lineOrBlockStyle: {\n type: 'string',\n enum: ['block', 'line', 'both']\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n};\n"],"mappings":"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","ignoreList":[]}