Csp.merge constructor
Merges CSP declarations.
Implementation
factory Csp.merge(Iterable<Csp> csps) {
final directivesMap = <String, List<String>>{};
for (var csp in csps) {
for (var entry in csp.directivesMap.entries) {
if (entry.key.endsWith('-src')) {
final argument = directivesMap.putIfAbsent(entry.key, () => []);
for (var directive in entry.value) {
if (!argument.contains(directive)) {
argument.add(directive);
}
}
argument.addAll(entry.value);
} else {
directivesMap[entry.key] = entry.value;
}
}
}
return Csp.fromMap(directivesMap);
}