summaryrefslogtreecommitdiff
path: root/lib/internal/url.js
diff options
context:
space:
mode:
authorKevin Smith <Kevin.Smith@microsoft.com>2018-12-29 12:57:39 -0800
committerDaniel Bevenius <daniel.bevenius@gmail.com>2019-01-11 07:17:44 +0100
commit7237eaa3353aacf284289c8b59b0a5e0fa5744bb (patch)
tree7feae677089115aa49b19f283cc81d6cb5ae8c51 /lib/internal/url.js
parenteb664c3b6df2ec618fa1c9339dbd418e858bfcfa (diff)
downloadandroid-node-v8-7237eaa3353aacf284289c8b59b0a5e0fa5744bb.tar.gz
android-node-v8-7237eaa3353aacf284289c8b59b0a5e0fa5744bb.tar.bz2
android-node-v8-7237eaa3353aacf284289c8b59b0a5e0fa5744bb.zip
url: return backslashes from fileURLToPath on win
PR-URL: https://github.com/nodejs/node/pull/25349 Fixes: https://github.com/nodejs/node/issues/25265 Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com> Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Diffstat (limited to 'lib/internal/url.js')
-rw-r--r--lib/internal/url.js5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/internal/url.js b/lib/internal/url.js
index 45ed236511..6ad7122b86 100644
--- a/lib/internal/url.js
+++ b/lib/internal/url.js
@@ -1275,6 +1275,8 @@ function urlToOptions(url) {
return options;
}
+const forwardSlashRegEx = /\//g;
+
function getPathFromURLWin32(url) {
var hostname = url.hostname;
var pathname = url.pathname;
@@ -1289,6 +1291,7 @@ function getPathFromURLWin32(url) {
}
}
}
+ pathname = pathname.replace(forwardSlashRegEx, '\\');
pathname = decodeURIComponent(pathname);
if (hostname !== '') {
// If hostname is set, then we have a UNC path
@@ -1297,7 +1300,7 @@ function getPathFromURLWin32(url) {
// about percent encoding because the URL parser will have
// already taken care of that for us. Note that this only
// causes IDNs with an appropriate `xn--` prefix to be decoded.
- return `//${domainToUnicode(hostname)}${pathname}`;
+ return `\\\\${domainToUnicode(hostname)}${pathname}`;
} else {
// Otherwise, it's a local path that requires a drive letter
var letter = pathname.codePointAt(1) | 0x20;