parseQueryString static method

Map<String, dynamic> parseQueryString(
  1. String queryString
)

Implementation

static Map<String, dynamic> parseQueryString(String queryString) {
  final result = <String, dynamic>{};

  if (queryString.isEmpty) return result;

  final parts = queryString.split('&');
  for (final part in parts) {
    final keyValue = part.split('=');
    if (keyValue.length == 2) {
      final key = Uri.decodeComponent(keyValue[0]);
      final value = Uri.decodeComponent(keyValue[1]);

      if (result.containsKey(key)) {
        if (result[key] is List) {
          (result[key] as List).add(value);
        } else {
          result[key] = [result[key], value];
        }
      } else {
        result[key] = value;
      }
    }
  }

  return result;
}