aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-09-06 17:43:29 +0100
committerMichael Williamson <mike@zwobble.org>2015-09-06 17:46:16 +0100
commitf16aeec2396f78cc3cedcaafa5d58899408ffb99 (patch)
treeb22834c594871c32ab85b0a7135dc3aa35b028be /lib
parent854682f7fcc4c68034b1174f461558840f39a7bf (diff)
Allow localhost in file:/// URIs
Diffstat (limited to 'lib')
-rw-r--r--lib/docx/files.js15
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/docx/files.js b/lib/docx/files.js
index e25d9cc..4e3a820 100644
--- a/lib/docx/files.js
+++ b/lib/docx/files.js
@@ -1,4 +1,5 @@
var fs = require("fs");
+var url = require("url");
var promises = require("../promises");
@@ -20,15 +21,11 @@ function Files() {
var readFile = promises.promisify(fs.readFile.bind(fs));
-function uriToPath(uri) {
- var fileUriPrefix = "file:///";
- if (startsWith(uri, fileUriPrefix)) {
- return decodeURIComponent(uri.slice(fileUriPrefix.length - 1));
+function uriToPath(uriString) {
+ var uri = url.parse(uriString);
+ if (uri.protocol === "file:" && (!uri.host || uri.host === "localhost")) {
+ return decodeURIComponent(uri.path);
} else {
- throw new Error("Could not convert URI to path: " + uri);
+ throw new Error("Could not convert URI to path: " + uriString);
}
}
-
-function startsWith(string, search) {
- return string.indexOf(search) === 0;
-}