validate method
Run all validation checks and return the result.
Implementation
ValidationResult validate() {
final findings = <ValidationFinding>[];
var filesScanned = 0;
// 1. Pub dependencies check
findings.addAll(_checkPubDependencies());
// 2. Scan source files for @Zorphy annotations
final annotatedFiles = <String>[];
for (final dir in sourceDirs) {
final absDir = p.join(projectDir, dir);
final dirEntity = Directory(absDir);
if (!dirEntity.existsSync()) continue;
for (final file in dirEntity.listSync(recursive: true)) {
if (file is! File || !file.path.endsWith('.dart')) continue;
// Skip generated files
if (file.path.endsWith('.zorphy.dart') ||
file.path.endsWith('.g.dart') ||
file.path.endsWith('.freezed.dart')) continue;
filesScanned++;
final content = file.readAsStringSync();
if (_hasZorphyAnnotation(content)) {
annotatedFiles.add(file.path);
// Check part directives
findings.addAll(_checkPartDirectives(file.path, content));
}
}
}
// 3. Check generated files for each annotated source
for (final sourcePath in annotatedFiles) {
findings.addAll(_checkGeneratedFiles(sourcePath));
}
return ValidationResult(
findings: findings,
validatedDir: projectDir,
filesScanned: filesScanned,
);
}