1 line
		
	
	
		
			20 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			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":[]} |