Skip to content
This repository was archived by the owner on Jul 16, 2023. It is now read-only.

Commit c248b3a

Browse files
authored
Export reporters (#325)
* fix: change file path used by file report * refactor: extract cli runner * chore: change imports * chore: review fixes * chore: fix imports * refactor: export reporters factory from lint analyzer
1 parent 8e7cb1c commit c248b3a

File tree

6 files changed

+35
-13
lines changed

6 files changed

+35
-13
lines changed

example/example.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import 'dart:io';
33

44
import 'package:dart_code_metrics/config.dart';
55
import 'package:dart_code_metrics/metrics_analyzer.dart';
6-
import 'package:dart_code_metrics/reporters.dart';
76

87
Future<void> main() async {
98
// Get some folder you would like to analyze

lib/metrics.dart

Lines changed: 0 additions & 2 deletions
This file was deleted.

lib/metrics_analyzer.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,7 @@
11
export 'package:dart_code_metrics/src/analyzers/lint_analyzer/lint_analyzer.dart';
2+
3+
export 'package:dart_code_metrics/src/analyzers/lint_analyzer/reporters/reporters_list/console/lint_console_reporter.dart';
4+
export 'package:dart_code_metrics/src/analyzers/lint_analyzer/reporters/reporters_list/json/lint_json_reporter.dart';
5+
6+
export 'package:dart_code_metrics/src/analyzers/lint_analyzer/metrics/metrics_factory.dart';
7+
export 'package:dart_code_metrics/src/analyzers/lint_analyzer/metrics/models/metric_value_level.dart';

lib/reporters.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export 'package:dart_code_metrics/src/analyzers/lint_analyzer/reporters/reporter_factory.dart';
2-
export 'package:dart_code_metrics/src/analyzers/lint_analyzer/reporters/reporters_list/console/lint_console_reporter.dart';
1+
export 'package:dart_code_metrics/src/reporters/models/reporter.dart';
2+
export 'package:dart_code_metrics/src/analyzers/models/file_report.dart';

lib/src/analyzers/lint_analyzer/lint_analyzer.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import 'package:file/local.dart';
99
import 'package:glob/glob.dart';
1010
import 'package:path/path.dart';
1111

12+
import '../../config_builder/models/config.dart';
13+
import '../../reporters/models/reporter.dart';
1214
import '../../utils/exclude_utils.dart';
1315
import '../../utils/node_utils.dart';
1416
import '../models/entity_type.dart';
@@ -29,11 +31,25 @@ import 'metrics/models/metric_documentation.dart';
2931
import 'metrics/models/metric_value.dart';
3032
import 'metrics/models/metric_value_level.dart';
3133
import 'metrics/scope_visitor.dart';
34+
import 'reporters/reporter_factory.dart';
3235
import 'reporters/utility_selector.dart';
3336

3437
class LintAnalyzer {
3538
const LintAnalyzer();
3639

40+
Reporter? getReporter({
41+
required Config config,
42+
required String name,
43+
required IOSink output,
44+
required String reportFolder,
45+
}) =>
46+
reporter(
47+
config: config,
48+
name: name,
49+
output: output,
50+
reportFolder: reportFolder,
51+
);
52+
3753
FileReport? runPluginAnalysis(
3854
ResolvedUnitResult result,
3955
LintConfig config,

lib/src/cli/cli_runner.dart

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import 'dart:io';
22

33
import '../analyzers/lint_analyzer/lint_analyzer.dart';
4-
import '../analyzers/lint_analyzer/reporters/reporter_factory.dart';
54
import '../analyzers/lint_analyzer/reporters/utility_selector.dart';
65
import '../config_builder/config_builder.dart';
76
import '../config_builder/models/analysis_options.dart';
87
import 'arguments_builder/arguments_builder.dart';
98

109
class CliRunner {
10+
static const _analyzer = LintAnalyzer();
11+
1112
static Future<void> runAnalysis(List<String> args) async {
1213
final parsedArgs = ArgumentsBuilder.getArguments(args);
1314

@@ -17,18 +18,20 @@ class CliRunner {
1718
final lintConfig =
1819
ConfigBuilder.getLintConfig(config, parsedArgs.rootFolder);
1920

20-
final lintAnalyserResult = await const LintAnalyzer().runCliAnalysis(
21+
final lintAnalyserResult = await _analyzer.runCliAnalysis(
2122
parsedArgs.folders,
2223
parsedArgs.rootFolder,
2324
lintConfig,
2425
);
2526

26-
await reporter(
27-
name: parsedArgs.reporterName,
28-
output: stdout,
29-
config: config,
30-
reportFolder: parsedArgs.reportFolder,
31-
)?.report(lintAnalyserResult);
27+
await _analyzer
28+
.getReporter(
29+
name: parsedArgs.reporterName,
30+
output: stdout,
31+
config: config,
32+
reportFolder: parsedArgs.reportFolder,
33+
)
34+
?.report(lintAnalyserResult);
3235

3336
if (parsedArgs.maximumAllowedLevel != null &&
3437
UtilitySelector.maxViolationLevel(lintAnalyserResult) >=

0 commit comments

Comments
 (0)