generateDelegatedLocalization function
String
generateDelegatedLocalization(
{ - required String name,
- required List properties,
- required String delegate,
})
Implementation
String generateDelegatedLocalization({
required String name,
required List properties,
required String delegate,
}) {
final delegatedLocalization = Class((b) {
b
..name = '_$name'
..mixins.add(refer('DelegatedLocalization<$delegate>'))
..implements.add(refer(name))
..methods.addAll(properties.map((prop) {
return Method((b) => b
..annotations.add(CodeExpression(Code('override')))
..type = MethodType.getter
..returns = refer('String')
..name = prop['name']
..lambda = true
..body = Code("localizations.${prop['alias'] as String}"));
}));
});
final emitter = DartEmitter();
return DartFormatter().format('${delegatedLocalization.accept(emitter)}');
}