UNPKG

frontend-standards-checker

Version:

A comprehensive frontend standards validation tool with TypeScript support

69 lines 2.42 kB
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