Conditions | 6 |
Paths | 10 |
Total Lines | 31 |
Lines | 0 |
Ratio | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | var parse_host = function(host){ |
||
2 | if(!tlds){ |
||
|
|||
3 | throw new Error('No TLDs!'); |
||
4 | } |
||
5 | |||
6 | var parts = host.split("."); |
||
7 | var stack = ""; |
||
8 | var tld_level = 1; //unknown tld are 1st level |
||
9 | for(var i=parts.length-1, part;i>=0;i--){ |
||
10 | part = parts[i]; |
||
11 | stack = stack ? part + "." + stack : part; |
||
12 | if(!tlds[stack]){ |
||
13 | break; |
||
14 | } |
||
15 | tld_level = tlds[stack]; |
||
16 | } |
||
17 | if(parts.length <= tld_level ) { |
||
18 | return { |
||
19 | tld: null, |
||
20 | domain: host |
||
21 | }; |
||
22 | } else { |
||
23 | return { |
||
24 | tld : parts.slice(-tld_level).join('.'), |
||
25 | domain : parts.slice(-tld_level-1).join('.'), |
||
26 | sub : parts.slice(0, (-tld_level-1)).join('.'), |
||
27 | }; |
||
28 | } |
||
29 | |||
30 | |||
31 | }; |