resolve method

BloomNode resolve()

Resolves the current URL path against the router and returns the matching BloomNode tree.

Reads reactive location signals, matches against registered BloomRoute patterns, and returns BloomRouteMatch.build for the active route (or an empty FragmentNode if no route matches).

BloomNode app() => Live(() => controller.resolve());

Implementation

BloomNode resolve() {
  final routeError = _initialRouteError.value;
  if (routeError != null) {
    throw StateError('Initial route guard resolution failed: $routeError');
  }
  if (!_initialRouteReady.value || _initialRouteBlocked.value) {
    return const FragmentNode([]);
  }
  final qs = buildQueryString(currentQueryAll.value);
  final frag =
      currentFragment.value.isNotEmpty ? '#${currentFragment.value}' : '';
  final fullLocation = '${currentPath.value}$qs$frag';
  final m = _router.match(fullLocation);
  return m == null ? const FragmentNode([]) : m.build();
}