HostnameRouter constructor

HostnameRouter({
  1. Map<Pattern, Angel> apps = const {},
  2. Map<Pattern, FutureOr<Angel> Function()> creators = const {},
})

Implementation

HostnameRouter(
    {Map<Pattern, Angel> apps = const {},
    Map<Pattern, FutureOr<Angel> Function()> creators = const {}}) {
  Map<Pattern, V> parseMap<V>(Map<Pattern, V> map) {
    return map.map((p, c) {
      Pattern pp;

      if (p is String) {
        pp = HostnameSyntaxParser(p).parse();
      } else {
        pp = p;
      }

      return MapEntry(pp, c);
    });
  }

  apps = parseMap(apps);
  creators = parseMap(creators);
  var patterns = apps.keys.followedBy(creators.keys).toSet().toList();
  _apps.addAll(apps);
  _creators.addAll(creators);
  _patterns.addAll(patterns);
  // print(_creators);
}