generateDataClassBody method
Generate data class from CustomType.
{@category generator}
Implementation
String generateDataClassBody(SquintGeneratorOptions options) {
// Sort members so required fields are serialized first and nullables last.
final sortedMembers = members..sort((a, b) => !a.type.nullable ? -1 : 1);
// Print the members as constructor fields.
final constructorMembers =
sortedMembers.map((e) => e.printConstructor).join("\n");
// Print the members as class fields.
final fieldMembers = sortedMembers.map((e) {
return options.includeJsonAnnotations
? e.printField(alwaysAddJsonValue: options.alwaysAddJsonValue)
: e.printFieldWithoutAnnotations;
}).join(options.blankLineBetweenFields ? "\n\n" : "\n");
return """
|@squint
|class $className {
| const $className ({
| $constructorMembers
| });
|
| $fieldMembers
|}
|
"""
.format;
}