run method

  1. @override
Future<AuditResult> run(
  1. ProjectContext context
)
override

Executes the audit.

Implementation

@override
Future<AuditResult> run(ProjectContext context) async {
  final issues = <SecurityIssue>[];

  if (!context.libDirectory.existsSync()) {
    return AuditResult(issues: issues);
  }

  final dartFiles = context.libDirectory
      .listSync(recursive: true)
      .whereType<File>()
      .where((file) => file.path.endsWith('.dart'))
      .where(
        (file) => !_ignoredFileNamePattern.hasMatch(p.basename(file.path)),
      );

  for (final file in dartFiles) {
    final lines = await file.readAsLines();

    for (var lineNumber = 0; lineNumber < lines.length; lineNumber++) {
      _scanLine(
        file: file,
        line: lines[lineNumber],
        lineNumber: lineNumber + 1,
        issues: issues,
      );
    }
  }

  return AuditResult(issues: issues);
}