process static method
dynamic
process(
- Map tree
)
Implementation
static dynamic process(Map tree) {
// print('process');
// registered item
if (tree.keys.length == 1 &&
ServerSideRendering.isRegistered(tree.keys.first)) {
var name = tree.keys.first;
var child = tree[name];
// print('registeryItem');
// print(name);
// print(child);
List<dynamic> positionalArguments = (child is List
? child.takeWhile((value) => value is! Map)
: (child is! Map ? [child] : []))
.toList();
// print('positionalArguments');
// print(positionalArguments);
Map<String, dynamic> namedArguments;
try {
namedArguments = child is List
? child.firstWhere((element) => element is Map)
: child;
} catch (err) {
namedArguments = {};
}
// print('namedArguments');
// print(namedArguments);
// print('outside loop');
var processedTree =
ServerSideRendering.processNamedArguments(namedArguments);
// });
if (processedTree.isEmpty) {
return Function.apply(
ServerSideRendering.getRegistery(name)!, positionalArguments);
} else {
return Function.apply(ServerSideRendering.getRegistery(name)!,
positionalArguments, {const Symbol('args'): processedTree});
}
}
var processedTree = ServerSideRendering.processNamedArguments(tree);
return processedTree;
}