toUrl method

Url<T> toUrl({
  1. Map<String, String> params = const {},
  2. Map<String, String> query = const {},
  3. List<String> args = const [],
  4. T? userState,
})

integrate key value pairs into url path and create Url object

Implementation

Url<T> toUrl({Map<String,String> params = const{}, Map<String, String> query = const{}, List<String> args = const[], T? userState}) {
  // check if parameters are complete
  final missing = segments.whereType<_ValueSegmentTemplate>().where((s) => !params.containsKey(s.name));
  if (missing.isNotEmpty){
    throw StateError('missing parameters: ${missing.map((e) => e.name).toList()}');
  }
  return Url<T>(_toUrlPath(params), params: params, query: query, args: args, userState: userState);
}