frontend-standards-checker
Version:
A comprehensive frontend standards validation tool with TypeScript support
69 lines • 2.42 kB
TypeScript
import type { IRuleEngine, ILogger, IValidationRule, IValidationError, IStandardsConfiguration, IRuleEngineInitOptions } from '../types';
/**
* RuleEngine is responsible for validating files against a set of configurable rules.
* It supports initialization with a standards configuration, exclusion of configuration files,
* and running both basic and additional validation rules.
*
* @remarks
* - Skips validation for common configuration files.
* - Supports extensible validation via additional validators.
* - Deduplicates errors and provides detailed error reporting.
*
* @example
* ```typescript
* const engine = new RuleEngine(logger);
* engine.initialize(config);
* const errors = await engine.validateFile('/path/to/file.ts');
* ```
*/
export declare class RuleEngine implements IRuleEngine {
readonly logger: ILogger;
rules: IValidationRule[];
config: IStandardsConfiguration | null;
constructor(logger: ILogger);
/**
* Check if a file is a configuration file that should be excluded from validation
* @param filePath The file path to check
* @returns True if the file is a configuration file
*/
private isConfigFile;
/**
* Initialize the rule engine with configuration
*/
initialize(config: IStandardsConfiguration, _options?: IRuleEngineInitOptions): void;
/**
* Validate a file against all rules
*/
validateFile(filePath: string): Promise<IValidationError[]>;
private validateFileContent;
private runBasicRules;
private applyRule;
private createErrorInfo;
private addShadowingDetails;
private runAdditionalValidations;
private runAlwaysApplicableValidations;
private logRuleError;
private deduplicateErrors;
private handleValidationError;
/**
* Validate content with context (compatibility method)
*/
validate(_content: string, filePath: string, _context?: any): Promise<IValidationError[]>;
/**
* Check if a file is a configuration file (public method)
*/
isConfigurationFile(filePath: string): boolean;
/**
* Safely load additional validators
*/
private loadAdditionalValidators;
/**
* Run content validators for non-index files
*/
private runContentValidators;
/**
* Run file validators that apply to all files
*/
private runFileValidators;
}
//# sourceMappingURL=rule-engine.d.ts.map