Skip to content

Commit c837d82

Browse files
functionOrNull
1 parent 99176bb commit c837d82

File tree

4 files changed

+21
-19
lines changed

4 files changed

+21
-19
lines changed

tools/add_imports/bin/add_imports.dart

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,27 @@ import 'dart:io';
22

33
import 'package:add_imports/src/args.dart';
44
import 'package:add_imports/src/config.dart';
5+
import 'package:add_imports/src/util.dart';
56
import 'package:collection/collection.dart';
67

78
void main(List<String> arguments) {
8-
final args = Args.tryParse(arguments);
9+
final args = (() => Args.parse(arguments)).orNull();
910
if (args == null) {
1011
print(Args.usage);
1112

1213
return;
1314
}
1415

15-
final config = Config.fromYaml(File(args.configpath).readAsStringSync());
16+
final config = (() => Config.fromYaml(
17+
File(args.configpath).readAsStringSync(),
18+
)).orNull();
19+
20+
if (config == null) {
21+
print('Error while reading config from "${args.configpath}"');
22+
23+
return;
24+
}
25+
1626
final sourceFile = File(args.filename);
1727
final sourceString = sourceFile.readAsStringSync();
1828

tools/add_imports/lib/src/args.dart

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,9 @@ class Args {
1515
factory Args.parse(List<String> arguments) {
1616
final result = parser.parse(arguments);
1717

18-
1918
return Args(
2019
filename: result['filename'] as String,
2120
configpath: result['configpath'] as String,
2221
);
2322
}
24-
25-
static Args? tryParse(List<String> arguments) {
26-
try {
27-
return Args.parse(arguments);
28-
} catch (_) {
29-
return null;
30-
}
31-
}
3223
}

tools/add_imports/lib/src/config.dart

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,4 @@ class Config {
2121
fileUrlPrefix: parsedYaml['file_url_prefix'] as String,
2222
);
2323
}
24-
25-
static Config? tryFromYaml(String yamlString) {
26-
try {
27-
return Config.fromYaml(yamlString);
28-
} catch (_) {
29-
return null;
30-
}
31-
}
3224
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
extension FunctionOrNull<T> on T Function() {
2+
T? orNull() {
3+
try {
4+
return this();
5+
} catch (_) {
6+
return null;
7+
}
8+
}
9+
}

0 commit comments

Comments
 (0)