32 lines
1.2 KiB
JavaScript
32 lines
1.2 KiB
JavaScript
/**
|
|
* Checks if ESLint rules are disabled for a specific AST node.
|
|
*
|
|
* Determines whether a node is located on a line where ESLint rules have been
|
|
* disabled via comments (eslint-disable, eslint-disable-line,
|
|
* eslint-disable-next-line). This is used to exclude disabled nodes from
|
|
* sorting operations to respect user's explicit disable directives.
|
|
*
|
|
* @example
|
|
*
|
|
* ```ts
|
|
* const eslintDisabledLines = [5, 10, 11, 12] // Lines where ESLint is disabled
|
|
*
|
|
* const nodeOnLine5 = { loc: { start: { line: 5 } } }
|
|
* const nodeOnLine6 = { loc: { start: { line: 6 } } }
|
|
*
|
|
* isNodeEslintDisabled(nodeOnLine5, eslintDisabledLines)
|
|
* // Returns: true (line 5 is in disabled lines)
|
|
*
|
|
* isNodeEslintDisabled(nodeOnLine6, eslintDisabledLines)
|
|
* // Returns: false (line 6 is not in disabled lines)
|
|
* ```
|
|
*
|
|
* @param node - AST node to check for ESLint disable status.
|
|
* @param eslintDisabledLines - Array of line numbers where ESLint is disabled.
|
|
* @returns True if the node is on a disabled line, false otherwise.
|
|
*/
|
|
function isNodeEslintDisabled(node, eslintDisabledLines) {
|
|
return eslintDisabledLines.includes(node.loc.start.line)
|
|
}
|
|
export { isNodeEslintDisabled }
|