UNPKG

3.56 kBTypeScriptView Raw
1declare module "url" {
2 import { ParsedUrlQuery, ParsedUrlQueryInput } from 'querystring';
3
4 interface UrlObjectCommon {
5 auth?: string;
6 hash?: string;
7 host?: string;
8 hostname?: string;
9 href?: string;
10 path?: string;
11 pathname?: string;
12 protocol?: string;
13 search?: string;
14 slashes?: boolean;
15 }
16
17 // Input to `url.format`
18 interface UrlObject extends UrlObjectCommon {
19 port?: string | number;
20 query?: string | null | ParsedUrlQueryInput;
21 }
22
23 // Output of `url.parse`
24 interface Url extends UrlObjectCommon {
25 port?: string;
26 query?: string | null | ParsedUrlQuery;
27 }
28
29 interface UrlWithParsedQuery extends Url {
30 query: ParsedUrlQuery;
31 }
32
33 interface UrlWithStringQuery extends Url {
34 query: string | null;
35 }
36
37 function parse(urlStr: string): UrlWithStringQuery;
38 function parse(urlStr: string, parseQueryString: false | undefined, slashesDenoteHost?: boolean): UrlWithStringQuery;
39 function parse(urlStr: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery;
40 function parse(urlStr: string, parseQueryString: boolean, slashesDenoteHost?: boolean): Url;
41
42 function format(URL: URL, options?: URLFormatOptions): string;
43 function format(urlObject: UrlObject | string): string;
44 function resolve(from: string, to: string): string;
45
46 function domainToASCII(domain: string): string;
47 function domainToUnicode(domain: string): string;
48
49 /**
50 * This function ensures the correct decodings of percent-encoded characters as
51 * well as ensuring a cross-platform valid absolute path string.
52 * @param url The file URL string or URL object to convert to a path.
53 */
54 function fileURLToPath(url: string | URL): string;
55
56 /**
57 * This function ensures that path is resolved absolutely, and that the URL
58 * control characters are correctly encoded when converting into a File URL.
59 * @param url The path to convert to a File URL.
60 */
61 function pathToFileURL(url: string): URL;
62
63 interface URLFormatOptions {
64 auth?: boolean;
65 fragment?: boolean;
66 search?: boolean;
67 unicode?: boolean;
68 }
69
70 class URL {
71 constructor(input: string, base?: string | URL);
72 hash: string;
73 host: string;
74 hostname: string;
75 href: string;
76 readonly origin: string;
77 password: string;
78 pathname: string;
79 port: string;
80 protocol: string;
81 search: string;
82 readonly searchParams: URLSearchParams;
83 username: string;
84 toString(): string;
85 toJSON(): string;
86 }
87
88 class URLSearchParams implements Iterable<[string, string]> {
89 constructor(init?: URLSearchParams | string | { [key: string]: string | string[] | undefined } | Iterable<[string, string]> | Array<[string, string]>);
90 append(name: string, value: string): void;
91 delete(name: string): void;
92 entries(): IterableIterator<[string, string]>;
93 forEach(callback: (value: string, name: string, searchParams: this) => void): void;
94 get(name: string): string | null;
95 getAll(name: string): string[];
96 has(name: string): boolean;
97 keys(): IterableIterator<string>;
98 set(name: string, value: string): void;
99 sort(): void;
100 toString(): string;
101 values(): IterableIterator<string>;
102 [Symbol.iterator](): IterableIterator<[string, string]>;
103 }
104}