A lightweight and efficient URL validation package for JavaScript/TypeScript applications. This package helps developers validate URL syntax, check if a URL is live, and ensure proper domain formatting for better security.
✨ Features
- ✅ Validate URL Format – Ensures the URL follows the correct syntax.
- ✅ Check If a URL is Live – Uses an HTTP request to verify if a URL is reachable.
- ✅ Ensure Valid Protocols – Only accepts
http://
andhttps://
URLs. - ✅ Validate Domain and TLD – Ensures URLs have a proper domain and top-level domain.
- ✅ Block Invalid IP Addresses – Prevents malformed or private IPs.
- ✅ Customizable Allowed Status Codes – Define which HTTP status codes should be considered "live".
- ✅ Handles Redirects – Follows up to 5 redirects by default.
- ✅ Lightweight & Fast – Minimal dependencies for quick performance.
- ✅ TypeScript Support – Fully typed for safer and better development.
- ✅ Unit Tested – Built with Jest to ensure reliability.
📚 Installation
npm install @the-node-forge/url-validator
or using Yarn:
yarn add @the-node-forge/url-validator
🛠️ Basic Usage
1⃣ Validate URL Format
Easily check if a URL is properly formatted and follows best practices.
import { validateUrl } from '@the-node-forge/url-validator';
console.log(validateUrl('https://example.com')); // ✅ true
console.log(validateUrl('htp://invalid-url')); // ❌ false
console.log(validateUrl('http://example')); // ❌ false (Missing TLD)
console.log(validateUrl('http://999.999.999.999')); // ❌ false (Invalid IP Address)
console.log(validateUrl('http://exa mple.com')); // ❌ false (Contains spaces)
2⃣ Check If a URL is Live
Test if a URL is reachable by sending a request with customizable allowed status codes.
import { isUrlLive } from '@the-node-forge/url-validator';
isUrlLive('https://example.com').then(console.log); // ✅ true/false
Customizing Allowed Status Codes
By default, the following status codes are considered "live": [200, 301, 302, 403]
.
You can override this list if needed:
isUrlLive('https://example.com', [200, 301, 302]).then(console.log); // ✅ true if status is in the list
✅ API Reference
validateUrl Function
validateUrl(url: string): boolean;
Parameter | Type | Description |
---|---|---|
url |
string |
The URL to validate. |
Returns: boolean
– true
if the URL is valid, otherwise false
.
isUrlLive Function
isUrlLive(url: string, allowedStatusCodes?: number[]): Promise<boolean>;
Parameter | Type | Description |
---|---|---|
url |
string |
The URL to check if it's live. |
allowedStatusCodes |
number[] (optional) |
A list of status codes that should be considered "live". |
Returns: Promise<boolean>
– Resolves to true
if the URL is reachable and
returns a status in allowedStatusCodes
, otherwise false
.
💡 Contributing
Contributions are welcome! Please submit
issues or
pull requests.
⭐ Support
If you find this package useful, please give it a ⭐ on
GitHub