normalizeSuiNSName function

String normalizeSuiNSName(
  1. String name, [
  2. SuiNSType format = SuiNSType.at
])

Implementation

String normalizeSuiNSName(String name, [SuiNSType format = SuiNSType.at]) {
	final lowerCase = name.toLowerCase();
	List<String> parts;

	if (lowerCase.contains("@")) {
		if (!RegExp(SUI_NS_NAME_REGEX, caseSensitive: false).hasMatch(lowerCase)) {
			throw ArgumentError("Invalid SuiNS name $name");
		}
		final [labels, domain] = lowerCase.split('@');
		parts = [...(labels.isNotEmpty ? labels.split('.') : []), domain];
	} else {
		if (!RegExp(SUI_NS_DOMAIN_REGEX, caseSensitive: false).hasMatch(lowerCase)) {
			throw ArgumentError("Invalid SuiNS name $name");
		}
    final tmp = lowerCase.split('.');
		parts = tmp.sublist(0, tmp.length - 1);
	}

	if (format == SuiNSType.dot) {
		return "${parts.join('.')}.sui";
	}

	return "${parts.sublist(0, parts.length - 1).join('.')}@${parts[parts.length - 1]}";
}