URI.js is a Javascript library for working with URLs.
—
Support for second-level domain (SLD) detection and extraction with comprehensive country-specific domain knowledge.
/**
* Check if domain has a known second-level domain
* @param domain - Domain to check
* @returns Boolean indicating SLD presence
*/
SecondLevelDomains.has(domain: string): boolean;
/**
* Check if domain is a known second-level domain
* @param domain - Domain to check
* @returns Boolean indicating if domain is an SLD
*/
SecondLevelDomains.is(domain: string): boolean;
/**
* Get second-level domain portion of domain
* @param domain - Domain to extract SLD from
* @returns SLD portion or null if none
*/
SecondLevelDomains.get(domain: string): string | null;
/**
* Object containing SLD mappings by top-level domain
*/
SecondLevelDomains.list: object;
/**
* Restore previous SecondLevelDomains variable
* @returns Previous SecondLevelDomains variable value
*/
SecondLevelDomains.noConflict(): any;Usage Examples:
// Import SecondLevelDomains module
import SecondLevelDomains from 'urijs/src/SecondLevelDomains';
// Check for second-level domains
console.log(SecondLevelDomains.has('bbc.co.uk')); // true
console.log(SecondLevelDomains.has('example.com')); // false
// Check if domain is an SLD
console.log(SecondLevelDomains.is('co.uk')); // true
console.log(SecondLevelDomains.is('com')); // false
// Extract SLD portion
console.log(SecondLevelDomains.get('bbc.co.uk')); // 'co.uk'
console.log(SecondLevelDomains.get('example.com')); // null
// Various country examples
console.log(SecondLevelDomains.get('site.com.au')); // 'com.au'
console.log(SecondLevelDomains.get('blog.gov.uk')); // 'gov.uk'
console.log(SecondLevelDomains.get('shop.co.jp')); // 'co.jp'
// Use with URI.js for domain parsing
const uri = new URI('http://www.bbc.co.uk/news');
console.log(uri.hostname()); // 'www.bbc.co.uk'
console.log(uri.domain()); // 'bbc' (excludes SLD)
console.log(uri.tld()); // 'co.uk' (includes SLD)
console.log(uri.is('sld')); // true
// Access SLD list directly
console.log(SecondLevelDomains.list.uk); // ['co', 'gov', 'ac', ...]
console.log(SecondLevelDomains.list.au); // ['com', 'gov', 'edu', ...]Install with Tessl CLI
npx tessl i tessl/npm-urijs