ds-sfcoe-ailabs
Version:
AI-powered code review tool with static analysis integration for comprehensive code quality assessment.
101 lines (100 loc) • 3.72 kB
TypeScript
/**
* Rule type mapping utility for various linting and analysis rules
*
* Provides methods for extracting rule types, generating suggested fixes,
* creating unique keys for deduplication, and categorizing rules by
* language type (JavaScript/TypeScript vs Apex).
*
* @example
* ```typescript
* const ruleType = RuleUtils.extractRuleType('no-unused-vars');
* const fix = RuleUtils.getSuggestedFix('no-unused-vars');
* const isJs = RuleUtils.isJavaScriptRule('@typescript-eslint/no-unused-vars');
* ```
*/
export declare class RuleUtils {
/**
* Extract rule type from rule ID
*
* @param ruleId - The rule identifier to extract type from
* @returns The rule type category or 'General' if not found
* @example
* ```typescript
* const ruleType = RuleUtils.extractRuleType('no-unused-vars');
* console.log(ruleType); // 'JavaScript Best Practices'
*
* const apexType = RuleUtils.extractRuleType('ApexCRUDViolation');
* console.log(apexType); // 'Apex Security'
* ```
*/
static extractRuleType(ruleId: string): string;
/**
* Get suggested fix for a rule ID
*
* @param ruleId - The rule identifier to get fix for
* @param message - Optional rule message for context
* @returns Suggested fix description for the rule
* @example
* ```typescript
* const fix = RuleUtils.getSuggestedFix('no-unused-vars', 'Variable x is unused');
* console.log(fix); // 'Remove unused variable or prefix with underscore'
*
* const genericFix = RuleUtils.getSuggestedFix('unknown-rule');
* console.log(genericFix); // 'Review and fix unknown-rule violation'
* ```
*/
static getSuggestedFix(ruleId: string, message?: string): string;
/**
* Create a unique entry key for deduplication
*
* @param fileName - The file name
* @param ruleId - The rule identifier
* @param lineNumber - The line number where the issue occurs
* @returns Unique key string for deduplication
* @example
* ```typescript
* const key = RuleUtils.createEntryKey('file.js', 'no-unused-vars', 42);
* console.log(key); // 'file.js-no-unused-vars-42'
*
* const apexKey = RuleUtils.createEntryKey('MyClass.cls', 'ApexComplexity', 15);
* console.log(apexKey); // 'MyClass.cls-ApexComplexity-15'
* ```
*/
static createEntryKey(fileName: string, ruleId: string, lineNumber: number): string;
/**
* Check if a rule ID is a JavaScript/TypeScript rule
*
* @param ruleId - The rule identifier to check
* @returns True if the rule is for JavaScript/TypeScript/LWC code
* @example
* ```typescript
* const isJs = RuleUtils.isJavaScriptRule('@typescript-eslint/no-unused-vars');
* console.log(isJs); // true
*
* const isLwc = RuleUtils.isJavaScriptRule('@lwc/no-api-reassignments');
* console.log(isLwc); // true
*
* const isApex = RuleUtils.isJavaScriptRule('ApexComplexity');
* console.log(isApex); // false
* ```
*/
static isJavaScriptRule(ruleId: string): boolean;
/**
* Check if a rule ID is an Apex rule
*
* @param ruleId - The rule identifier to check
* @returns True if the rule is for Apex code
* @example
* ```typescript
* const isApex = RuleUtils.isApexRule('ApexCRUDViolation');
* console.log(isApex); // true
*
* const isApexComplexity = RuleUtils.isApexRule('ApexComplexity');
* console.log(isApexComplexity); // true
*
* const isJs = RuleUtils.isApexRule('no-unused-vars');
* console.log(isJs); // false
* ```
*/
static isApexRule(ruleId: string): boolean;
}