make the tld non-linear-searchy

This commit is contained in:
Deven Joshi
2022-01-04 14:37:34 +05:30
parent 504e72deca
commit 631ab68990
@@ -1,12 +1,16 @@
/// Extension on String adding utilities checking TLD validity.
extension TLDString on String {
/// Returns true if the string is a valid TLD.
bool isValidTLD() => tlds.contains(toUpperCase());
bool isValidTLD() =>
isNotEmpty &&
tlds.containsKey(this[0].toUpperCase()) &&
tlds[this[0].toUpperCase()]!.contains(toUpperCase());
}
/// List of valid TLDs.
/// https://data.iana.org/TLD/tlds-alpha-by-domain.txt
const tlds = [
const tlds = {
'A': [
'AAA',
'AARP',
'ABARTH',
@@ -103,6 +107,8 @@ const tlds = [
'AXA',
'AZ',
'AZURE',
],
'B': [
'BA',
'BABY',
'BAIDU',
@@ -196,6 +202,8 @@ const tlds = [
'BY',
'BZ',
'BZH',
],
'C': [
'CA',
'CAB',
'CAFE',
@@ -318,6 +326,8 @@ const tlds = [
'CYMRU',
'CYOU',
'CZ',
],
'D': [
'DABUR',
'DAD',
'DANCE',
@@ -373,6 +383,8 @@ const tlds = [
'DVAG',
'DVR',
'DZ',
],
'E': [
'EARTH',
'EAT',
'EC',
@@ -407,6 +419,8 @@ const tlds = [
'EXPOSED',
'EXPRESS',
'EXTRASPACE',
],
'F': [
'FAGE',
'FAIL',
'FAIRWINDS',
@@ -471,6 +485,8 @@ const tlds = [
'FURNITURE',
'FUTBOL',
'FYI',
],
'G': [
'GA',
'GAL',
'GALLERY',
@@ -542,6 +558,8 @@ const tlds = [
'GURU',
'GW',
'GY',
],
'H': [
'HAIR',
'HAMBURG',
'HANGOUT',
@@ -589,6 +607,8 @@ const tlds = [
'HUGHES',
'HYATT',
'HYUNDAI',
],
'I': [
'IBM',
'ICBC',
'ICE',
@@ -630,6 +650,8 @@ const tlds = [
'IT',
'ITAU',
'ITV',
],
'J': [
'JAGUAR',
'JAVA',
'JCB',
@@ -652,6 +674,8 @@ const tlds = [
'JPRS',
'JUEGOS',
'JUNIPER',
],
'K': [
'KAUFEN',
'KDDI',
'KE',
@@ -684,6 +708,8 @@ const tlds = [
'KY',
'KYOTO',
'KZ',
],
'L': [
'LA',
'LACAIXA',
'LAMBORGHINI',
@@ -751,6 +777,8 @@ const tlds = [
'LUXURY',
'LV',
'LY',
],
'M': [
'MA',
'MACYS',
'MADRID',
@@ -832,6 +860,8 @@ const tlds = [
'MX',
'MY',
'MZ',
],
'N': [
'NA',
'NAB',
'NAGOYA',
@@ -880,6 +910,8 @@ const tlds = [
'NU',
'NYC',
'NZ',
],
'O': [
'OBI',
'OBSERVER',
'OFFICE',
@@ -905,6 +937,8 @@ const tlds = [
'OTSUKA',
'OTT',
'OVH',
],
'P': [
'PA',
'PAGE',
'PANASONIC',
@@ -976,10 +1010,14 @@ const tlds = [
'PW',
'PWC',
'PY',
],
'Q': [
'QA',
'QPON',
'QUEBEC',
'QUEST',
],
'R': [
'RACING',
'RADIO',
'RE',
@@ -1028,6 +1066,8 @@ const tlds = [
'RW',
'RWE',
'RYUKYU',
],
'S': [
'SA',
'SAARLAND',
'SAFE',
@@ -1156,6 +1196,8 @@ const tlds = [
'SYDNEY',
'SYSTEMS',
'SZ',
],
'T': [
'TAB',
'TAIPEI',
'TALK',
@@ -1230,6 +1272,8 @@ const tlds = [
'TVS',
'TW',
'TZ',
],
'U': [
'UA',
'UBANK',
'UBS',
@@ -1243,6 +1287,8 @@ const tlds = [
'US',
'UY',
'UZ',
],
'V': [
'VA',
'VACATIONS',
'VANA',
@@ -1279,6 +1325,8 @@ const tlds = [
'VOYAGE',
'VU',
'VUELOS',
],
'W': [
'WALES',
'WALMART',
'WALTER',
@@ -1314,6 +1362,8 @@ const tlds = [
'WS',
'WTC',
'WTF',
],
'X': [
'XBOX',
'XEROX',
'XFINITY',
@@ -1474,6 +1524,8 @@ const tlds = [
'XN--ZFR164B',
'XXX',
'XYZ',
],
'Y': [
'YACHTS',
'YAHOO',
'YAMAXUN',
@@ -1486,6 +1538,8 @@ const tlds = [
'YOUTUBE',
'YT',
'YUN',
],
'Z': [
'ZA',
'ZAPPOS',
'ZARA',
@@ -1495,4 +1549,5 @@ const tlds = [
'ZONE',
'ZUERICH',
'ZW',
];
],
};