Files

58 lines
1.6 KiB
TypeScript

/**
* Array of all ESLint disable directive types. Used to identify and parse
* ESLint disable comments in source code.
*/
declare let eslintDisableDirectives: readonly [
'eslint-disable',
'eslint-enable',
'eslint-disable-line',
'eslint-disable-next-line',
]
/**
* Type representing one of the ESLint disable directive types. Can be
* 'eslint-disable', 'eslint-enable', 'eslint-disable-line', or
* 'eslint-disable-next-line'.
*/
type EslintDisableDirective = (typeof eslintDisableDirectives)[number]
/**
* Parses an ESLint disable comment to extract the directive type and affected
* rules.
*
* Analyzes comment text to determine if it contains an ESLint disable directive
* and which rules are affected. Returns null if the comment is not a valid
* ESLint disable directive.
*
* @example
*
* ```ts
* getEslintDisabledRules('eslint-disable')
* // Returns: { eslintDisableDirective: 'eslint-disable', rules: 'all' }
* ```
*
* @example
*
* ```ts
* getEslintDisabledRules('eslint-disable-next-line no-console, no-alert')
* // Returns: {
* // eslintDisableDirective: 'eslint-disable-next-line',
* // rules: ['no-console', 'no-alert']
* // }
* ```
*
* @example
*
* ```ts
* getEslintDisabledRules('regular comment')
* // Returns: null
* ```
*
* @param comment - Comment text to parse (without comment delimiters).
* @returns Object containing directive type and affected rules, or null if not
* a disable comment.
*/
export declare function getEslintDisabledRules(comment: string): {
eslintDisableDirective: EslintDisableDirective
rules: string[] | 'all'
} | null
export {}