mergeVaryHeader function
Merges field into the Vary header value currentVary.
Implementation
String mergeVaryHeader(Object? currentVary, String field) {
var vary =
(currentVary is Iterable ? currentVary.join(', ') : currentVary)
?.toString()
.trim() ??
'';
if (vary.isEmpty || vary == '*') {
return vary.isEmpty ? field : vary;
}
var fields = vary
.split(',')
.map((e) => e.trim())
.where((e) => e.isNotEmpty)
.toList();
if (fields.any((e) => equalsIgnoreAsciiCase(e, field))) return vary;
return [...fields, field].join(', ');
}