location method
Generates an encoded URI and rejects missing or unused parameters.
Implementation
Uri location({
Map<String, String> parameters = const {},
Map<String, dynamic>? queryParameters,
String? fragment,
}) {
if (parameters.length != this.parameters.length ||
!this.parameters.every(parameters.containsKey) ||
parameters.values.any((value) => value.isEmpty)) {
final expected = this.parameters;
throw ArgumentError('Expected nonempty parameters: $expected');
}
if (_segments.isEmpty) {
return Uri(
path: '/', queryParameters: queryParameters, fragment: fragment);
}
return Uri(
pathSegments: [
'',
for (final segment in _segments)
segment.startsWith(':') ? parameters[segment.substring(1)]! : segment,
],
queryParameters: queryParameters,
fragment: fragment,
);
}