fix: place @JsonSerializable on factory constructor for Freezed compatibility
This commit is contained in:
parent
1231af9f0b
commit
cae78c5fe7
|
|
@ -127,6 +127,8 @@ String _generateAnnotatedModelCodeWithoutImports(
|
||||||
buffer.writeln(StringHelper.generateComment(model.description));
|
buffer.writeln(StringHelper.generateComment(model.description));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Build @JsonSerializable annotation string for factory constructor
|
||||||
|
String? jsonSerializableAnnotation;
|
||||||
final jsonConfig = SwaggerConfig.jsonSerializableConfig;
|
final jsonConfig = SwaggerConfig.jsonSerializableConfig;
|
||||||
if (jsonConfig != null) {
|
if (jsonConfig != null) {
|
||||||
final params = <String>[];
|
final params = <String>[];
|
||||||
|
|
@ -135,14 +137,19 @@ String _generateAnnotatedModelCodeWithoutImports(
|
||||||
if (!jsonConfig.includeIfNull) params.add('includeIfNull: false');
|
if (!jsonConfig.includeIfNull) params.add('includeIfNull: false');
|
||||||
|
|
||||||
if (params.isNotEmpty) {
|
if (params.isNotEmpty) {
|
||||||
buffer.writeln('@JsonSerializable(${params.join(', ')})');
|
jsonSerializableAnnotation = '@JsonSerializable(${params.join(', ')})';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer
|
buffer
|
||||||
..writeln('@freezed')
|
..writeln('@freezed')
|
||||||
..writeln('abstract class $className with _\$$className {')
|
..writeln('abstract class $className with _\$$className {');
|
||||||
..writeln(' const factory $className({');
|
|
||||||
|
// Add @JsonSerializable annotation on factory constructor if configured
|
||||||
|
if (jsonSerializableAnnotation != null) {
|
||||||
|
buffer.writeln(' $jsonSerializableAnnotation');
|
||||||
|
}
|
||||||
|
buffer.writeln(' const factory $className({');
|
||||||
|
|
||||||
model.properties.forEach((propName, property) {
|
model.properties.forEach((propName, property) {
|
||||||
final dartType = generator.getDartPropertyType(property);
|
final dartType = generator.getDartPropertyType(property);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue