generateEnumHelpers function
Implementation
String generateEnumHelpers(String enumName, List<dynamic> values) {
// enum + fromJson / toJson switchers
final b = StringBuffer();
final tokens = <String>[];
for (final v in values) {
tokens.add(sanitizeEnumValue('$v'));
}
b.writeln('enum $enumName {');
for (final t in tokens) {
b.writeln(' $t,');
}
b.writeln('}');
b.writeln();
b.writeln('$enumName ${enumName}FromJson(dynamic value) {');
b.writeln(' switch (value) {');
for (int i = 0; i < values.length; i++) {
b.writeln(" case '${values[i]}': return $enumName.${tokens[i]};");
}
b.writeln(" default: throw ArgumentError('Unknown $enumName: \$value');");
b.writeln(' }');
b.writeln('}');
b.writeln();
b.writeln("dynamic ${enumName}ToJson($enumName value) {");
b.writeln(' switch (value) {');
for (int i = 0; i < values.length; i++) {
b.writeln(
' case $enumName.${tokens[i]}: return ${jsonEncode(values[i])};');
}
b.writeln(' }');
b.writeln('}');
b.writeln();
return b.toString();
}