extract-domain
extract-domain copied to clipboard
Extract domain name from an URL
Extract domain name from URL
Performant domain name extraction. No regex or array magic.
However. This package will also remove the sub domain, and unless the TLD option is used, anything other than the domain and second level domain (so www.example.co.uk would return co.uk)
Supports
Browser and Node.
Usage
$ npm i --save extract-domain
- urls = string|array
- returns string|array
extractDomain(urls);
ES6
import extractDomain from "extract-domain";
const extractDomain = require("extract-domain");
const urls = [
"https://www.npmjs.com/package/extract-domain",
"http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument",
"http://user:[email protected]:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument",
"https://npmjs.com/package/extract-domain",
"ftp://example.org/resource.txt",
"http://example.co.uk/",
"[email protected]"
];
extractDomain(urls[0]); // npmjs.com
extractDomain(urls); // [ 'npmjs.com', 'example.com', 'example.com', 'npmjs.com', 'example.org', 'co.uk', 'email.com' ]
TLD support
TLD support require optional dependency to psl
library.
const url =
"http://www.example.co.uk:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument";
extractDomain(url, { tld: true });
// example.co.uk
However, using the tld flag will slow down the process by many seconds. Benchmark:
# extract domain 10,000 times
end ~14 ms (0 s + 13572914 ns)
# extract domain with tld 10,000 times
end ~4.29 s (4 s + 288108681 ns)
Tests
$ npm test
Coding style
$ npm run pretty
Benchmark
$ npm run benchmark
Contribution
Contributions are appreciated.
License
MIT-licensed. See LICENSE.