sanitizeUriForLogging static method

String sanitizeUriForLogging(
  1. Uri uri
)

Implementation

static String sanitizeUriForLogging(Uri uri) {
  if (uri.queryParametersAll.isEmpty) {
    return uri.toString();
  }

  final sanitizedPairs = <String>[];
  uri.queryParametersAll.forEach((key, values) {
    final isSensitive = _isSensitiveKey(key);
    final sourceValues = values.isEmpty ? const [''] : values;

    for (final value in sourceValues) {
      final safeValue = isSensitive ? _redactedValue : value;
      sanitizedPairs.add(
        '${Uri.encodeQueryComponent(key)}=${Uri.encodeQueryComponent(safeValue)}',
      );
    }
  });

  final sanitizedQuery = sanitizedPairs.join('&');
  return uri.replace(query: sanitizedQuery).toString();
}