1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.fromUrl = exports.NO_HOSTNAME = void 0;
|
4 | const urlPattern = /^[a-z][*+.a-z-]+:\/\//i;
|
5 | exports.NO_HOSTNAME = Symbol("NO_HOSTNAME");
|
6 | const fromUrl = (urlLike) => {
|
7 |
|
8 | if (typeof URL !== "function") {
|
9 | throw new Error("Looks like the new URL() constructor is not globally available in your environment. Please make sure to use a polyfill.");
|
10 | }
|
11 |
|
12 | if (typeof urlLike !== "string") {
|
13 | return exports.NO_HOSTNAME;
|
14 | }
|
15 |
|
16 | const url = urlLike.startsWith("//")
|
17 | ? `http:${urlLike}`
|
18 | :
|
19 | urlLike.startsWith("/")
|
20 | ? urlLike
|
21 | : urlPattern.test(urlLike)
|
22 | ? urlLike
|
23 | : `http://${urlLike}`;
|
24 | try {
|
25 | return new URL(url).hostname;
|
26 | }
|
27 | catch (_a) {
|
28 | return exports.NO_HOSTNAME;
|
29 | }
|
30 | };
|
31 | exports.fromUrl = fromUrl;
|
32 |
|
\ | No newline at end of file |