splitSubdomainInDomains static method

List<String> splitSubdomainInDomains(
  1. String name
)

Splits the given domain in seperate domain names for each subdomain.

Example: sub2.sub1.domain.com => 'sub2.sub1.domain.com', 'sub1.domain.com', 'domain.com'

Implementation

static List<String> splitSubdomainInDomains(String name) {
  var domains = <String>[];
  var ar = name.split('\.');

  for (var i = 0; i < ar.length; i++) {
    var sb = StringBuffer();
    for (var j = i; j < ar.length; j++) {
      sb.write(ar[j]);
      sb.write('.');
    }
    var domain = sb.toString();
    domain = domain.substring(0, domain.length - 1);
    if (ar.length - i == 3) {
      var splitted = splitDomainName(domain);
      if (isSubTld(splitted.elementAt(2), splitted.elementAt(1))) {
        domains.add(domain);
        break;
      }
    }
    if (ar.length - i == 2) {
      domains.add(domain);
      break;
    }
    domains.add(domain);
  }
  return domains;
}