builder<T extends Object?> static method
RouterNode<T>
builder<T extends Object?>(
- String path, {
- T? data,
- List<
RouterNode< children = const [],T> >
Implementation
static RouterNode<T> builder<T extends Object?>(String path,
{T? data, List<RouterNode<T>> children = const []}) {
late final RouterNode<T> leafNode, rootNode;
if (path == '/') {
leafNode = RouterNode<T>(
data: data,
name: '',
children: {},
isParameter: false,
);
rootNode = leafNode;
} else {
final node = RouterNode<T>.fromPath(path);
leafNode = node.leftMostLeaf;
leafNode.data ??= data;
if (node.children.isEmpty) {
return node;
}
rootNode = node.children.values.first;
}
for (final child in children) {
if (child.name == '') {
leafNode.data ??= child.data;
for (final child in child.children.values) {
leafNode.addAndMergeSubtree(child);
}
} else {
leafNode.addAndMergeSubtree(child);
}
}
return rootNode;
}