99 lines
3.6 KiB
TypeScript
99 lines
3.6 KiB
TypeScript
import URLError from './lib/errors'
|
|
import URLSearchParams from './lib/url-search-params'
|
|
|
|
interface URL {
|
|
/** The full serialized URL string. Setting this property reparses the URL. */
|
|
href: string
|
|
/** The URL scheme followed by `':'`, for example `'https:'`. */
|
|
protocol: string
|
|
/** The username portion of the URL, or an empty string. */
|
|
username: string
|
|
/** The password portion of the URL, or an empty string. */
|
|
password: string
|
|
/** The hostname and port, for example `'example.com:8080'`. */
|
|
host: string
|
|
/** The hostname without the port. */
|
|
hostname: string
|
|
/** The port as a string, or an empty string if not present. */
|
|
port: string
|
|
/** The path portion of the URL. */
|
|
pathname: string
|
|
/** The query string including the leading `'?'`, or an empty string. */
|
|
search: string
|
|
/**
|
|
* A `URLSearchParams` object for the query string. Mutations to the params are reflected in the
|
|
* URL.
|
|
*/
|
|
searchParams: URLSearchParams
|
|
/** The fragment including the leading `'#'`, or an empty string. */
|
|
hash: string
|
|
|
|
/** Returns the serialized string form. */
|
|
toString(): string
|
|
/** Returns the serialized string form. Suitable for JSON serialization. */
|
|
toJSON(): string
|
|
}
|
|
|
|
declare class URL {
|
|
/**
|
|
* Parse `input` as a URL. If `base` is provided, `input` is resolved relative to `base`.
|
|
* @param input - The URL string to parse.
|
|
* @param base - A base URL that `input` is resolved relative to, if provided.
|
|
* @throws {INVALID_URL} `input` is not a valid URL.
|
|
*/
|
|
constructor(input: string | URL, base?: string | URL)
|
|
}
|
|
|
|
declare namespace URL {
|
|
/**
|
|
* Return `true` if `value` is a `URL` instance.
|
|
* @param value - The value to test.
|
|
*/
|
|
export function isURL(value: unknown): value is URL
|
|
|
|
/**
|
|
* Return `true` if `value` is a `URLSearchParams` instance.
|
|
* @param value - The value to test.
|
|
*/
|
|
export function isURLSearchParams(value: unknown): value is URLSearchParams
|
|
|
|
/**
|
|
* Parse `input` as a URL without throwing.
|
|
* @param input - The URL string to parse.
|
|
* @param base - A base URL that `input` is resolved relative to, if provided.
|
|
* @returns A `URL` instance if `input` parses successfully, or `null` on failure.
|
|
*/
|
|
export function parse(input: string, base?: string | URL): URL | null
|
|
|
|
/**
|
|
* Return `true` if `input` can be parsed as a valid URL, optionally relative to `base`.
|
|
* @param input - The URL string to test.
|
|
* @param base - A base URL that `input` is resolved relative to, if provided.
|
|
*/
|
|
export function canParse(input: string, base?: string | URL): boolean
|
|
|
|
/**
|
|
* Convert a `file:` URL to a platform-specific file path. `url` may be a `URL` instance or a
|
|
* string.
|
|
* @param url - The `file:` URL to convert, as a `URL` instance or a string.
|
|
* @throws {INVALID_URL_SCHEME} the URL does not use the `file:` protocol.
|
|
* @throws {INVALID_FILE_URL_HOST} (non-Windows) the URL has a host other than empty or
|
|
* `'localhost'`.
|
|
* @throws {INVALID_FILE_URL_PATH} the URL path contains an encoded path-separator or NUL
|
|
* character, or, on Windows, is not an absolute drive path.
|
|
*/
|
|
export function fileURLToPath(url: URL | string): string
|
|
|
|
/**
|
|
* Convert a platform-specific file path to a `file:` URL.
|
|
* @param pathname - The platform-specific file path to convert.
|
|
* @throws {INVALID_ARG_VALUE} (Windows) the path is a UNC path with an empty server name or
|
|
* no resource path.
|
|
* @throws {INVALID_URL} the path does not form a valid `file:` URL.
|
|
*/
|
|
export function pathToFileURL(pathname: string): URL
|
|
|
|
export { URL, type URLError, URLError as errors, URLSearchParams }
|
|
}
|
|
|
|
export = URL
|