aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2017-01-23 18:23:50 +0000
committerMichael Williamson <mike@zwobble.org>2017-01-23 18:24:43 +0000
commit635b04a5e46f9a8e09d72b6e593b056106706110 (patch)
tree11691981e2d07fb20976d103d58baf7dc9a1e2d1 /lib
parent840dcaae21c2b8b478e5f1bfed599885f6177672 (diff)
Strip leading slashes from names when getting zip entries
Diffstat (limited to 'lib')
-rw-r--r--lib/zipfile.js14
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/zipfile.js b/lib/zipfile.js
index 91c5f04..efe519c 100644
--- a/lib/zipfile.js
+++ b/lib/zipfile.js
@@ -8,11 +8,11 @@ exports.joinZipPath = joinZipPath;
function openArrayBuffer(arrayBuffer) {
var zipFile = new JSZip(arrayBuffer);
function exists(name) {
- return zipFile.file(name) !== null;
+ return zipFile.file(normaliseName(name)) !== null;
}
function read(name, encoding) {
- var array = zipFile.file(name).asUint8Array();
+ var array = zipFile.file(normaliseName(name)).asUint8Array();
var buffer = new Buffer(array);
if (encoding) {
return promises.when(buffer.toString(encoding));
@@ -22,7 +22,7 @@ function openArrayBuffer(arrayBuffer) {
}
function write(name, contents) {
- zipFile.file(name, contents);
+ zipFile.file(normaliseName(name), contents);
}
function toBuffer() {
@@ -37,6 +37,14 @@ function openArrayBuffer(arrayBuffer) {
};
}
+function normaliseName(name) {
+ if (name.charAt(0) === "/") {
+ return name.substr(1);
+ } else {
+ return name;
+ }
+}
+
function joinZipPath(first, second) {
if (second.charAt(0) === "/") {
return second;