validate method

ValidationResult validate()

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,
  );
}