summaryrefslogtreecommitdiff
path: root/lib/internal/url.js
diff options
context:
space:
mode:
authorGuy Bedford <guybedford@gmail.com>2017-10-10 20:44:00 +0200
committerAnna Henningsen <anna@addaleax.net>2017-10-14 11:21:10 +0200
commitd90dca6620760f0bd9a7889e906273a60362d76d (patch)
treebfddb1d21e6ecfeadcba575b825feb4f030c1a16 /lib/internal/url.js
parent2b0145d47ca428a5172cff535915d9358c971854 (diff)
downloadandroid-node-v8-d90dca6620760f0bd9a7889e906273a60362d76d.tar.gz
android-node-v8-d90dca6620760f0bd9a7889e906273a60362d76d.tar.bz2
android-node-v8-d90dca6620760f0bd9a7889e906273a60362d76d.zip
module: allow loading files with % in the name
PR-URL: https://github.com/nodejs/node/pull/16128 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Bradley Meck <bradley.meck@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Diffstat (limited to 'lib/internal/url.js')
-rw-r--r--lib/internal/url.js6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/internal/url.js b/lib/internal/url.js
index 18594a86fd..044d8b96a7 100644
--- a/lib/internal/url.js
+++ b/lib/internal/url.js
@@ -1377,8 +1377,14 @@ function getPathFromURL(path) {
return isWindows ? getPathFromURLWin32(path) : getPathFromURLPosix(path);
}
+// We percent-encode % character when converting from file path to URL,
+// as this is the only character that won't be percent encoded by
+// default URL percent encoding when pathname is set.
+const percentRegEx = /%/g;
function getURLFromFilePath(filepath) {
const tmp = new URL('file://');
+ if (filepath.includes('%'))
+ filepath = filepath.replace(percentRegEx, '%25');
tmp.pathname = filepath;
return tmp;
}