|
23 | 23 |
|
24 | 24 | const{ toASCII }=process.binding('config').hasIntl ? |
25 | 25 | process.binding('icu') : require('punycode'); |
| 26 | + |
26 | 27 | const{ hexTable }=require('internal/querystring'); |
27 | | -constinternalUrl=require('internal/url'); |
28 | | -exports.parse=urlParse; |
29 | | -exports.resolve=urlResolve; |
30 | | -exports.resolveObject=urlResolveObject; |
31 | | -exports.format=urlFormat; |
32 | | -exports.URL=internalUrl.URL; |
33 | | -exports.URLSearchParams=internalUrl.URLSearchParams; |
34 | | -exports.domainToASCII=internalUrl.domainToASCII; |
35 | | -exports.domainToUnicode=internalUrl.domainToUnicode; |
36 | 28 |
|
| 29 | +// WHATWG URL implementation provided by internal/url |
| 30 | +const{ |
| 31 | +URL, |
| 32 | + URLSearchParams, |
| 33 | + domainToASCII, |
| 34 | + domainToUnicode, |
| 35 | + formatSymbol |
| 36 | +}=require('internal/url'); |
37 | 37 |
|
38 | | -exports.Url=Url; |
| 38 | +// Original url.parse() API |
39 | 39 |
|
40 | 40 | functionUrl(){ |
41 | 41 | this.protocol=null; |
@@ -559,7 +559,7 @@ function urlFormat(obj, options) { |
559 | 559 | thrownewTypeError('Parameter "urlObj" must be an object, not '+ |
560 | 560 | (obj===null ? 'null' : typeofobj)); |
561 | 561 | }elseif(!(objinstanceofUrl)){ |
562 | | -varformat=obj[internalUrl.formatSymbol]; |
| 562 | +varformat=obj[formatSymbol]; |
563 | 563 | returnformat ? |
564 | 564 | format.call(obj,options) : |
565 | 565 | Url.prototype.format.call(obj); |
@@ -1030,3 +1030,18 @@ function encodeAuth(str) { |
1030 | 1030 | returnout+str.slice(lastPos); |
1031 | 1031 | returnout; |
1032 | 1032 | } |
| 1033 | + |
| 1034 | +module.exports={ |
| 1035 | +// Original API |
| 1036 | + Url, |
| 1037 | +parse: urlParse, |
| 1038 | +resolve: urlResolve, |
| 1039 | +resolveObject: urlResolveObject, |
| 1040 | +format: urlFormat, |
| 1041 | + |
| 1042 | +// WHATWG API |
| 1043 | +URL, |
| 1044 | + URLSearchParams, |
| 1045 | + domainToASCII, |
| 1046 | + domainToUnicode |
| 1047 | +}; |
0 commit comments