renderTemplate method
Implementation
Future<String> renderTemplate(String name, Map<String, String> data) async {
var templateUri = Uri(
scheme: 'package',
path: 'astra_cli/src/templates/$name.template',
);
var templateResolvedUri = await Isolate.resolvePackageUri(templateUri);
if (templateResolvedUri == null) {
throw CliException('Serve template uri not resolved');
}
var template = await File.fromUri(templateResolvedUri).readAsString();
String replace(Match match) {
var variable = match.group(1);
if (variable == null) {
throw StateError("Template variable '$variable' not found");
}
return data[variable] as String;
}
return template.replaceAllMapped(RegExp('__([A-Z][0-9A-Z]*)__'), replace);
}