qsValue function

String? qsValue(
  1. dynamic arg
)

Implementation

String? qsValue(arg) {
  if (arg == null) return "";
  if (arg is Uint8List) {
    return base64.encode(arg);
  }
  if (arg is String) {
    return Uri.encodeComponent(arg);
  }
  if (arg is List) {
    var sb = StringBuffer();
    for (var x in arg) {
      if (sb.length > 0) sb.write(",");
      sb.write(qsValue(x));
    }
    return sb.toString();
  }
  if (arg is IConvertible) {
    arg = arg.toJson();
  }
  if (arg is Map) {
    var sb = StringBuffer();
    arg.forEach((key, val) {
      if (val == null) return;
      if (sb.length > 0) sb.write(",");
      sb.write(_toString(key));
      sb.write(":");
      sb.write(qsValue(val));
    });
    return "{" + sb.toString() + "}";
  }
  return arg.toString();
}