1.0.8 • Published 10 months ago

jsdomain-parser v1.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

JS Domain Parser

JS Domain Parser is a lightweight JavaScript library designed to parse and extract detailed information from URLs. It supports detecting TLDs (Top-Level Domains), handling private and unknown TLDs, and extending the TLD list with custom values.

Features

  • Extracts detailed URL components (protocol, domain, hostname, path, etc.).
  • Detects TLDs using a comprehensive list of ICANN and private TLDs.
  • Supports custom TLDs via configuration.
  • Allows toggling support for private and unknown TLDs.
  • Supports all protocols (e.g., http, https, ssh, ftp, telnet, etc.).

Installation

npm install jsdomain-parser

or you can include jsdomain-parser directly in your project by adding the following <script> tag to your HTML file:

<script src="./dist/jsdomain-parser.umd.min.js"></script>

This will expose the jsDomainParser global object in the browser.

Usage

Example 1: Basic Parsing

import { parse } from "jsdomain-parser";

const url = "https://www.example.com/path?query=test#hash";
const result = parse(url);

console.log(result);

Output:

{
  "tld": {
    "name": "com",
    "length": 1,
    "parts": ["com"]
  },
  "url": {
    "domain": "example.com",
    "origin": "https://www.example.com",
    "protocol": "https:",
    "host": "www.example.com",
    "hostname": "www.example.com",
    "port": "",
    "pathname": "/path",
    "search": "?query=test",
    "hash": "#hash",
    "query": {
      "query": "test"
    }
  }
}

Example 2: Using Custom Options

const url = "my.custom.tld";

const result = parse(url, {
  allowPrivate: true, // Enable private TLDs
  allowUnknown: false, // Disallow unknown TLDs
  extendedTlds: ["custom.tld", "tld"], // Add custom TLDs
});

console.log(result);

Output:

{
  "tld": {
    "name": "custom.tld",
    "length": 2,
    "parts": ["custom", "tld"]
  },
  "url": {
    "domain": "my.custom.tld",
    "origin": "http://my.custom.tld",
    "protocol": "http:",
    "host": "my.custom.tld",
    "hostname": "my.custom.tld",
    "port": "",
    "pathname": "/",
    "search": "",
    "hash": "",
    "query": {}
  }
}

Example 3: Error Handling

try {
  const result = parse("invalid-url");
  console.log(result);
} catch (e) {
  console.error("Error:", e.message);
}

Output:

Error: Invalid URL: Invalid URL: Error: Could not detect TLD. You can set allowUnknown to true for allowing unknown TLDs.

API Reference

parse(url, options = {})

Parses a URL string and returns an object containing TLD and URL details.

  • url: The URL to parse (string).
  • options (object): Optional configurations:
    • allowPrivate (boolean): Allow private TLDs (default: true).
    • allowUnknown (boolean): Allow unknown TLDs (default: false).
    • extendedTlds (array): Array of custom TLDs to extend the list.

Returns: An object with the following structure:

  • tld: Details of the detected TLD.
    • name: The TLD name.
    • length: The number of parts in the TLD.
    • parts: An array of the TLD parts.
  • url: Details of the parsed URL.
    • domain: The domain name.
    • origin: The full URL origin.
    • protocol: The protocol (e.g., http:).
    • host: The host.
    • hostname: The hostname.
    • port: The port (if any).
    • pathname: The path.
    • search: The query string.
    • hash: The hash fragment.
    • query: An object representation of query parameters.
1.0.8

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago