normalizeMgoNSName function
Implementation
String normalizeMgoNSName(String name, [MgoNSType format = MgoNSType.at]) {
final lowerCase = name.toLowerCase();
List<String> parts;
if (lowerCase.contains("@")) {
if (!RegExp(MGO_NS_NAME_REGEX, caseSensitive: false).hasMatch(lowerCase)) {
throw ArgumentError("Invalid MgoNS name $name");
}
final [labels, domain] = lowerCase.split('@');
parts = [...(labels.isNotEmpty ? labels.split('.') : []), domain];
} else {
if (!RegExp(MGO_NS_DOMAIN_REGEX, caseSensitive: false).hasMatch(lowerCase)) {
throw ArgumentError("Invalid MgoNS name $name");
}
final tmp = lowerCase.split('.');
parts = tmp.sublist(0, tmp.length - 1);
}
if (format == MgoNSType.dot) {
return "${parts.join('.')}.mgo";
}
return "${parts.sublist(0, parts.length - 1).join('.')}@${parts[parts.length - 1]}";
}