delegateTemplate function
Implementation
String delegateTemplate({
required Iterable<ExportNode> nodes,
required Set<String> locales,
String className = 'Locales',
String defaultLocale = 'en',
}) {
final template = Template(_template, htmlEscapeValues: false);
final List<String> allLocales = locales.toList();
final Set<String> copyLocales = Set.from(locales)..remove(defaultLocale);
final List<String> localesWitOutMain = copyLocales.toList();
final rootNode = nodes.firstWhere((element) => element.root);
final nonRootNodes = nodes.where((element) => !element.root);
return template.renderString({
'className': className,
'allLocales': allLocales,
'locales': localesWitOutMain,
'defaultLocale': defaultLocale,
'pascalCase': (LambdaContext value) {
return StringUtils.toPascalCase(value.renderString());
},
'rootNode': (LambdaContext value) {
return nodeRefRender(node: rootNode, header: false);
},
'nonRootNodes': _nonRootNodes(nonRootNodes),
'nodeImplements': _nodeImplements(nodes),
});
}