buildPath static method

String buildPath([
  1. List<String>? segments,
  2. Map<String, String>? query
])

Implementation

static String buildPath(
    [List<String>? segments, Map<String, String>? query]) {
  final buffer = StringBuffer();
  if (segments == null || segments.isEmpty)
    buffer.write("/");
  else
    segments
        .forEach((s) => buffer..write("/")..write(Uri.encodeComponent(s)));

  if (query != null && query.isNotEmpty) {
    final entries = query.entries.toList();
    var started = false;
    for (var i = 0; i < entries.length; i++) {
      final entry = entries[i];

      if (!started) {
        buffer.write("?");
        started = true;
      } else {
        buffer.write("&");
      }

      buffer.write(Uri.encodeQueryComponent(entry.key));
      buffer.write("=");
      buffer.write(Uri.encodeQueryComponent(entry.value));
    }
  }

  return buffer.toString();
}