UNPKG

eslint-plugin-perfectionist

Version:

ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc.

56 lines (55 loc) 1.6 kB
'use strict' Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }) const types = require('@typescript-eslint/types') const getEslintDisabledRules = require('./get-eslint-disabled-rules.js') const matches = require('./matches.js') let isPartitionComment = ({ partitionByComment, comment }) => { if ( getEslintDisabledRules.getEslintDisabledRules(comment.value) || !partitionByComment ) { return false } let trimmedComment = comment.value.trim() if ( Array.isArray(partitionByComment) || typeof partitionByComment === 'boolean' || typeof partitionByComment === 'string' ) { return isTrimmedCommentPartitionComment({ partitionByComment, trimmedComment, }) } let relevantPartitionByComment if ( comment.type === types.AST_TOKEN_TYPES.Block && 'block' in partitionByComment ) { relevantPartitionByComment = partitionByComment.block } if ( comment.type === types.AST_TOKEN_TYPES.Line && 'line' in partitionByComment ) { relevantPartitionByComment = partitionByComment.line } return ( // eslint-disable-next-line no-undefined relevantPartitionByComment !== void 0 && isTrimmedCommentPartitionComment({ partitionByComment: relevantPartitionByComment, trimmedComment, }) ) } let isTrimmedCommentPartitionComment = ({ partitionByComment, trimmedComment, }) => { if (typeof partitionByComment === 'boolean') { return partitionByComment } return matches.matches(trimmedComment, partitionByComment) } exports.isPartitionComment = isPartitionComment