parse-domain
Version:
Splits an url into sub-domain, domain and effective top-level-domain
33 lines (24 loc) • 652 B
JavaScript
;
var characters = require("./characters.js");
function lookUp(trie, domains) {
var domainsToCheck = domains.slice();
var topLevel = [];
var node = trie;
while (domainsToCheck.length) {
var domain = domainsToCheck.pop();
if (node.children.has(characters.WILDCARD)) {
if (node.children.has(characters.EXCEPTION + domain)) {
break;
}
node = node.children.get(characters.WILDCARD);
} else {
if (node.children.has(domain) === false) {
break;
}
node = node.children.get(domain);
}
topLevel.unshift(domain);
}
return topLevel;
}
module.exports = lookUp;