Url
Constructors
fromString
Signature
declare const fromString: (
url: string,
base?: string | URL,
) => Either<URL, IllegalArgumentException>;Example
import { Url } from "@effect/platform"
import { Either } from "effect"
// Parse an absolute URL
//
// โโโโ Either<URL, IllegalArgumentException>
// โผ
const parsed = Url.fromString("https://example.com/path")
if (Either.isRight(parsed)) {
console.log("Parsed URL:", parsed.right.toString())
} else {
console.log("Error:", parsed.left.message)
}
// Output: Parsed URL: https://example.com/path
// Parse a relative URL with a base
const relativeParsed = Url.fromString("/relative-path", "https://example.com")
if (Either.isRight(relativeParsed)) {
console.log("Parsed relative URL:", relativeParsed.right.toString())
} else {
console.log("Error:", relativeParsed.left.message)
}
// Output: Parsed relative URL: https://example.com/relative-pathGetters
Modifiers
modifyUrlParams
Reads, modifies, and updates the query parameters of a 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) => UrlParams): (url: URL) => URL;
(url: URL, f: (urlParams: UrlParams) => UrlParams): URL;
};Example
import { Url, UrlParams } from "@effect/platform"
const myUrl = new URL("https://example.com?foo=bar")
const changedUrl = Url.modifyUrlParams(myUrl, UrlParams.append("key", "value"))
console.log(changedUrl.toString())
// Output: https://example.com/?foo=bar&key=valueThis function clones the original URL object and applies a callback to the clone, allowing multiple updates at once.
Signature
declare const mutate: {
(f: (url: URL) => void): (self: URL) => URL;
(self: URL, f: (url: URL) => void): URL;
};Example
import { Url } from "@effect/platform"
const myUrl = new URL("https://example.com")
const mutatedUrl = Url.mutate(myUrl, (url) => {
url.username = "user"
url.password = "pass"
})
console.log("Mutated:", mutatedUrl.toString())
// Output: Mutated: https://user:pass@example.com/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: UrlParams): (url: URL) => URL;
(url: URL, urlParams: UrlParams): URL;
};Example
import { Url, UrlParams } from "@effect/platform"
const myUrl = new URL("https://example.com?foo=bar")
// Write parameters
const updatedUrl = Url.setUrlParams(myUrl, UrlParams.fromInput([["key", "value"]]))
console.log(updatedUrl.toString())
// Output: https://example.com/?key=valuesetUsername
Updates the username used for authentication.
Signature
declare const setUsername: {
(username: string): (url: URL) => URL;
(url: URL, username: string): URL;
};
Parses a URL string into a
URLobject, returning anEithertype for safe 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 aIllegalArgumentExceptionand returns it as theLeftvalue of anEither. TheRightvalue 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.