eslint-plugin-comment-length
Version:
An ESLint plugin that provides rules that limit the line length of your comments
1 lines • 1.88 kB
Source Map (JSON)
{"version":3,"file":"util.can-block-be-compacted.cjs","sources":["../../../../src/rules/limit-single-line-comments/util.can-block-be-compacted.ts"],"sourcesContent":["import type { TSESTree } from \"@typescript-eslint/utils\";\n\nimport { type Context } from \"../../typings.context.js\";\nimport { isURL } from \"../../utils/is-url.js\";\n\nimport type { CommentBlock } from \"./typings.block.js\";\n\nexport function canBlockBeCompated(\n comments: TSESTree.LineComment[],\n block: CommentBlock,\n context: Context,\n): boolean {\n for (let i = block.startIndex + 1; i <= block.endIndex; i++) {\n const prev = comments[i - 1];\n const curr = comments[i];\n\n if (!prev || !curr || (context.ignoreUrls && isURL(curr?.value))) {\n continue;\n }\n\n const firstWordOnCurrentLine = curr.value.trim().split(\" \")[0];\n const lengthOfPrevLine =\n prev.value.length + context.boilerplateSize + context.whitespace.size + 1;\n\n if (\n lengthOfPrevLine + 1 + (firstWordOnCurrentLine?.length ?? 0) <=\n context.maxLength\n ) {\n return true;\n }\n }\n\n return false;\n}\n"],"names":["isURL"],"mappings":";;;;AAOgB,SAAA,kBAAA,CACd,QACA,EAAA,KAAA,EACA,OACS,EAAA;AACT,EAAA,KAAA,IAAS,IAAI,KAAM,CAAA,UAAA,GAAa,GAAG,CAAK,IAAA,KAAA,CAAM,UAAU,CAAK,EAAA,EAAA;AAC3D,IAAM,MAAA,IAAA,GAAO,QAAS,CAAA,CAAA,GAAI,CAAC,CAAA,CAAA;AAC3B,IAAM,MAAA,IAAA,GAAO,SAAS,CAAC,CAAA,CAAA;AAEvB,IAAI,IAAA,CAAC,QAAQ,CAAC,IAAA,IAAS,QAAQ,UAAc,IAAAA,WAAA,CAAM,IAAM,EAAA,KAAK,CAAI,EAAA;AAChE,MAAA,SAAA;AAAA,KACF;AAEA,IAAM,MAAA,sBAAA,GAAyB,KAAK,KAAM,CAAA,IAAA,GAAO,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA,CAAA;AAC7D,IAAM,MAAA,gBAAA,GACJ,KAAK,KAAM,CAAA,MAAA,GAAS,QAAQ,eAAkB,GAAA,OAAA,CAAQ,WAAW,IAAO,GAAA,CAAA,CAAA;AAE1E,IAAA,IACE,mBAAmB,CAAK,IAAA,sBAAA,EAAwB,MAAU,IAAA,CAAA,CAAA,IAC1D,QAAQ,SACR,EAAA;AACA,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAAA,GACF;AAEA,EAAO,OAAA,KAAA,CAAA;AACT;;;;"}