Url
Parses and edits platform URL values.
The HTTP modules use the standard URL object as their URL representation. This module adds safe parsing and helpers that return updated copies when changing credentials, host, path, protocol, query, or hash parts. Query strings can also be read or updated through UrlParams.
Constructors
fromString
Signature
declare const fromString: (url: string, base?: string | URL) => Result<URL, IllegalArgumentError>;Creates a URL safely by appending UrlParams and an optional hash to a URL string.
Details
Returns a Result that fails with UrlError if the URL cannot be constructed.
Signature
declare function make(
url: string,
params: UrlParams,
hash: string | undefined,
): Result<URL, UrlError>;Errors
Getters
Setters
Updates the hash fragment of the URL.
Signature
declare const setHash: {
(hash: string): (url: URL) => URL;
(url: URL, hash: string): URL;
};Updates the host (domain and port) of the URL.
Signature
declare const setHost: {
(host: string): (url: URL) => URL;
(url: URL, host: string): URL;
};setHostname
Updates the domain of the URL without modifying the port.
Signature
declare const setHostname: {
(hostname: string): (url: URL) => URL;
(url: URL, hostname: string): URL;
};Replaces the entire URL string.
Signature
declare const setHref: {
(href: string): (url: URL) => URL;
(url: URL, href: string): URL;
};setPassword
Updates the password used for authentication.
Signature
declare const setPassword: {
(password: string | Redacted<string>): (url: URL) => URL;
(url: URL, password: string | Redacted<string>): URL;
};setPathname
Updates the path of the URL.
Signature
declare const setPathname: {
(pathname: string): (url: URL) => URL;
(url: URL, pathname: string): URL;
};Updates the port of the URL.
Signature
declare const setPort: {
(port: string | number): (url: URL) => URL;
(url: URL, port: string | number): URL;
};setProtocol
Updates the protocol (e.g., http, https).
Signature
declare const setProtocol: {
(protocol: string): (url: URL) => URL;
(url: URL, protocol: string): URL;
};Updates the query string of the URL.
Signature
declare const setSearch: {
(search: string): (url: URL) => URL;
(url: URL, search: string): URL;
};setUrlParams
Updates the query parameters of a URL.
Details
This function allows you to set or replace the query parameters of a URL object using the provided UrlParams. It creates a new URL object with the updated parameters, leaving the original object unchanged.
Signature
declare const setUrlParams: {
(urlParams: Input): (url: URL) => URL;
(url: URL, urlParams: Input): URL;
};setUsername
Updates the username used for authentication.
Signature
declare const setUsername: {
(username: string): (url: URL) => URL;
(url: URL, username: string): URL;
};Transforming
modifyUrlParams
Reads the query parameters of a URL, modifies them, and updates the URL.
Details
This function provides a functional way to interact with query parameters by reading the current parameters, applying a transformation function, and then writing the updated parameters back to the URL. It returns a new URL object with the modified parameters, ensuring immutability.
Signature
declare const modifyUrlParams: {
(f: (urlParams: UrlParams) => Input): (url: URL) => URL;
(url: URL, f: (urlParams: UrlParams) => Input): URL;
};Updates a cloned URL with a callback, allowing multiple changes at once.
Signature
declare const mutate: {
(f: (url: URL) => void): (self: URL) => URL;
(self: URL, f: (url: URL) => void): URL;
};
Parses a URL string safely into a
URLobject, returning aResulttype for error handling.Details
This function converts a string into a
URLobject, enabling safe URL parsing with built-in error handling. If the string is invalid or fails to parse, this function does not throw an error; instead, it wraps the error in aIllegalArgumentErrorand returns it as theFailurevalue of anResult. TheSuccessvalue contains the successfully parsedURL.An optional
baseparameter can be provided to resolve relative URLs. If specified, the function interprets the inputurlas relative to thisbase. This is especially useful when dealing with URLs that might not be fully qualified.