isKnownSuffix static method

bool isKnownSuffix(
  1. String suffix, {
  2. SuffixRules? suffixRules,
})

Checks if suffix is a known url suffix

For example, co.uk might be known but not example.

suffixRules can be used to specify which suffix list to check, otherwise DefaultSuffixRules.rules is used.

Throws a StateError if suffixRules is null and DefaultSuffixRules has not been initialised.

Implementation

static bool isKnownSuffix(String suffix, {SuffixRules? suffixRules}) {
  suffixRules ??= DefaultSuffixRules.rulesOrThrow();

  var split = suffix.split('.');
  var rules = suffixRules.ruleMap[split.last] ?? [];
  var isKnown = false;

  for (var rule in rules) {
    if (rule.labels.split('.').length == split.length &&
        rule.matches(suffix)) {
      isKnown = true;
      break;
    }
  }

  return isKnown;
}