urlParse
Parses a URL string into a structured object containing all URL components (protocol, host, path, query parameters, and hash).
Usage Scenarios
- URL Processing: Extract and analyze URL components
- Routing: Parse and handle application routes
- Query Parameter Handling: Access and manipulate query parameters
- URL Normalization: Standardize URL formats
Examples
import { urlParse } from 'funtool';
// Parse full URL
const parsed = urlParse('https://example.com:8080/path?a=1&b=true&c=');
console.log(parsed.hostname); // 'example.com'
console.log(parsed.query.a); // 1
// Parse relative URL
const relative = urlParse('/search?q=hello#results');
console.log(parsed.pathname); // '/search'
console.log(parsed.hash); // '#results'
Signature
interface ParsedURL {
host: string;
hostname: string;
pathname: string;
port: string;
protocol: string;
origin: string;
href: string;
search: string;
hash: string;
query: Record<string, any>;
}
function urlParse(url: string): ParsedURL
Parameters
url
: The URL string to parse (can be absolute or relative)
Return Value
Returns a ParsedURL
object with:
protocol
: URL protocol (e.g. 'https:')
host
: Host with port (e.g. 'example.com:8080')
hostname
: Host without port
port
: Port number
pathname
: URL path
origin
: Protocol + host
href
: Full original URL
search
: Query string with '?'
hash
: Hash fragment with '#'
query
: Parsed query parameters as key-value pairs
Notes
- Handles both absolute and relative URLs
- Query parameters are automatically decoded
- Numeric and boolean values are converted to proper types
- Array parameters are supported (e.g. ?a=1&a=2)
- Empty parameters become empty strings