Url
The Url
module provides various utility functions for working with URLs. This module is essential for parsing, manipulating, and formatting URLs within plugins. Below, you will find detailed information on the methods available in this module.
Usage
To use the Url
module, import it at the top of your plugin main file:
const Url = acode.require('Url');
Methods
basename(url: string): string | null
Returns the basename of the last segment of the URL path, or null if the input is invalid.
Example:
const basename = Url.basename('ftp://localhost/foo/bar/index.html');
// Output: 'index.html'
areSame(...urls: string[]): boolean
Compares multiple URL strings and returns true if they are all the same, false otherwise.
Example:
const areSame = Url.areSame('https://example.com', 'https://example.com');
// Output: true
extname(url: string): string | null
Returns the file extension of the last segment of the URL path, or null if the input is invalid.
Example:
const extname = Url.extname('ftp://localhost/foo/bar/index.html');
// Output: '.html'
join(...pathNames: string[]): string
Joins multiple path strings into a single URL string.
Example:
const joinedUrl = Url.join('https://example.com', '/foo', '/bar');
// Output: 'https://example.com/foo/bar'
safe(url: string): string
Returns a URL-safe string by encoding each component of the URL.
Example:
const safeUrl = Url.safe('https://www.example.com/path/to/file.html?query=string#hash');
// Output: 'https://www.example.com/path/to/file.html%3Fquery%3Dstring%23hash'
pathname(url: string): string | null
Returns the path of the URL, or null if the input is invalid.
Example:
const pathname = Url.pathname('ftp://myhost.com/foo/bar/index.html');
// Output: '/foo/bar'
dirname(url: string): string | null
Returns the directory name from the URL, or null if the input is invalid.
Example:
const dirname = Url.dirname('ftp://localhost/foo/bar');
// Output: 'ftp://localhost/foo/'
parse(url: string): URLObject
Parses the given URL and returns an object containing the URL and query string.
Example:
const parsedUrl = Url.parse('https://example.com/path?query=string');
// Output: { url: 'https://example.com/path', query: '?query=string' }
formate(urlObj: URLObject): string
Formats a URL object into a string.
Example:
const urlObj = {
protocol: 'https:',
hostname: 'example.com',
path: 'path/to/page',
query: { key: 'value' }
};
const formattedUrl = Url.formate(urlObj);
// Output: 'https://example.com/path/to/page?key=value'
getProtocol(url: string): "ftp:" | "sftp:" | "http:" | "https:"
Returns the protocol of a URL.
Example:
const protocol = Url.getProtocol('ftp://localhost/foo/bar');
// Output: 'ftp:'
hidePassword(url: string): string
Returns a URL string with the password (if present) replaced with asterisks.
Example:
const hiddenPasswordUrl = Url.hidePassword('ftp://user:password@localhost/foo/bar');
// Output: 'ftp://user@localhost/foo/bar'
decodeUrl(url: string): URLObject
Decodes the URL and returns an object containing username, password, hostname, pathname, port, and query.
Example:
const decodedUrl = Url.decodeUrl('https://user:pass@host.com:8080/path?query=string');
// Output: { username: 'user', password: 'pass', hostname: 'host.com', pathname: '/path', port: 8080, query: { query: 'string' } }
trimSlash(url: string): string
Removes the trailing slash from a URL.
Example:
const trimmedUrl = Url.trimSlash('https://example.com/path/');
// Output: 'https://example.com/path'