parse-domain
Version:
Splits a hostname into subdomains, domain and (effective) top-level domains
25 lines • 824 B
JavaScript
import * as characters from "./characters.js";
export const lookUpTldsInTrie = (labels, trie) => {
const labelsToCheck = labels.slice();
const tlds = [];
let node = trie;
while (labelsToCheck.length !== 0) {
const label = labelsToCheck.pop();
const labelLowerCase = label.toLowerCase();
if (node.children.has(characters.WILDCARD)) {
if (node.children.has(characters.EXCEPTION + labelLowerCase)) {
break;
}
node = node.children.get(characters.WILDCARD);
}
else {
if (node.children.has(labelLowerCase) === false) {
break;
}
node = node.children.get(labelLowerCase);
}
tlds.unshift(label);
}
return tlds;
};
//# sourceMappingURL=look-up.js.map