Skip to content
File

Blob: src/node/url.ts

typescript69 lines
1// Copyright (c) 2017-2022 Cloudflare, Inc.
2// Licensed under the Apache 2.0 license found in the LICENSE file or at:
3// https://opensource.org/licenses/Apache-2.0
4import { default as urlUtil } from 'node-internal:url';
5import { ERR_MISSING_ARGS } from 'node-internal:internal_errors';
6import {
7 fileURLToPath,
8 pathToFileURL,
9 toPathIfFileURL,
10 urlToHttpOptions,
11} from 'node-internal:internal_url';
12import {
13 format,
14 parse,
15 resolve,
16 resolveObject,
17 Url,
18} from 'node-internal:legacy_url';
19 
20const { URL, URLSearchParams } = globalThis;
21 
22export function domainToASCII(domain?: unknown): string {
23 if (arguments.length < 1) {
24 throw new ERR_MISSING_ARGS('domain');
25 }
26 
27 return urlUtil.domainToASCII(`${domain}`);
28}
29 
30export function domainToUnicode(domain?: unknown): string {
31 if (arguments.length < 1) {
32 throw new ERR_MISSING_ARGS('domain');
33 }
34 
35 return urlUtil.domainToUnicode(`${domain}`);
36}
37 
38export {
39 fileURLToPath,
40 pathToFileURL,
41 toPathIfFileURL,
42 urlToHttpOptions,
43} from 'node-internal:internal_url';
44export {
45 format,
46 parse,
47 resolve,
48 resolveObject,
49 Url,
50} from 'node-internal:legacy_url';
51export { URL, URLSearchParams };
52 
53export default {
54 domainToASCII,
55 domainToUnicode,
56 URL,
57 URLSearchParams,
58 fileURLToPath,
59 pathToFileURL,
60 toPathIfFileURL,
61 urlToHttpOptions,
62 // Legacy APIs
63 format,
64 parse,
65 resolve,
66 resolveObject,
67 Url,
68};