@@ -33,17 +33,20 @@ class OpenapiGenerator extends GeneratorForAnnotation<Openapi> {
33
33
34
34
var separator = '?*?' ;
35
35
var command = 'generate' ;
36
- var inputFile = annotation.read ('inputSpecFile' )? .stringValue ?? '' ;
36
+
37
+ var inputFile = _readFieldValueAsString (annotation, 'inputSpecFile' , '' );
37
38
if (inputFile.isNotEmpty) {
38
39
command = '$command $separator -i$separator ${inputFile }' ;
39
40
}
40
41
41
- var templateDir = annotation.read ('templateDir' )? .stringValue ?? '' ;
42
+ var templateDir =
43
+ _readFieldValueAsString (annotation, 'templateDirectory' , '' );
42
44
if (templateDir.isNotEmpty) {
43
45
command = '$command $separator -t$separator ${templateDir }' ;
44
46
}
45
47
46
- var generator = annotation.read ('generatorName' )? .stringValue ?? 'dart' ;
48
+ var generator =
49
+ _readFieldValueAsString (annotation, 'generatorName' , 'dart' );
47
50
if (generator != 'dart' &&
48
51
generator != 'dart-dio' &&
49
52
generator != 'dart-jaguar' ) {
@@ -53,7 +56,8 @@ class OpenapiGenerator extends GeneratorForAnnotation<Openapi> {
53
56
}
54
57
command = '$command $separator -g$separator $generator ' ;
55
58
56
- var outputDirectory = annotation.read ('outputDirectory' ).stringValue ?? '' ;
59
+ var outputDirectory =
60
+ _readFieldValueAsString (annotation, 'outputDirectory' , '' );
57
61
if (outputDirectory.isNotEmpty) {
58
62
if (path.isAbsolute (outputDirectory)) {
59
63
throw InvalidGenerationSourceError (
@@ -66,7 +70,7 @@ class OpenapiGenerator extends GeneratorForAnnotation<Openapi> {
66
70
// The created directory is returned as a Future.
67
71
.then ((Directory directory) {});
68
72
} else {
69
- var alwaysRun = annotation. read ( 'alwaysRun' ) ? .boolValue ?? false ;
73
+ var alwaysRun = _readFieldValueAsBool (annotation, 'alwaysRun' , false ) ;
70
74
var filePath = path.join (outputDirectory, 'lib/api.dart' );
71
75
if (! alwaysRun && await File (filePath).exists ()) {
72
76
print (
@@ -89,16 +93,20 @@ class OpenapiGenerator extends GeneratorForAnnotation<Openapi> {
89
93
.revive ()
90
94
.namedArguments
91
95
.entries
92
- .forEach ((entry) => {
93
- additionalProperties =
94
- '$additionalProperties ${additionalProperties .isEmpty ? '' : ',' }${entry .key }=${entry .value .toStringValue ()}'
95
- });
96
+ .forEach ((entry) =>
97
+ {
98
+ additionalProperties =
99
+ '$additionalProperties ${additionalProperties .isEmpty ? '' : ',' }${entry
100
+ .key }=${entry .value .toStringValue ()}'
101
+ });
96
102
97
103
if (additionalProperties != null && additionalProperties.isNotEmpty) {
98
104
command =
99
- '$command $separator --additional-properties=${additionalProperties }' ;
105
+ '$command $separator --additional-properties=${additionalProperties }' ;
100
106
}
101
107
108
+ print ('openapi-generator ===> ${command .replaceAll (separator , ' ' )}' );
109
+
102
110
var binPath = await Isolate .resolvePackageUri (
103
111
Uri .parse ('package:openapi_generator_cli/openapi-generator.jar' ));
104
112
@@ -151,6 +159,20 @@ class OpenapiGenerator extends GeneratorForAnnotation<Openapi> {
151
159
String getMapAsString (Map <dynamic , dynamic > data) {
152
160
return data.entries.map ((entry) => '${entry .key }=${entry .value }' ).join (',' );
153
161
}
162
+
163
+ String _readFieldValueAsString (ConstantReader annotation, String fieldName,
164
+ [String defaultValue]) {
165
+ var reader = annotation.read (fieldName);
166
+
167
+ return reader.isNull ? defaultValue : reader.stringValue ?? defaultValue;
168
+ }
169
+
170
+ bool _readFieldValueAsBool (ConstantReader annotation, String fieldName,
171
+ [bool defaultValue]) {
172
+ var reader = annotation.read (fieldName);
173
+
174
+ return reader.isNull ? defaultValue : reader.boolValue ?? defaultValue;
175
+ }
154
176
}
155
177
156
178
//abstract class RevivableInstance implements ConstantReader {
0 commit comments