Add Universal Module Loader script
So that JSZip can be used in CommonJS, require.js and plain
browser environments
diff --git a/jszip-load.js b/jszip-load.js
index a15209f..de873f9 100644
--- a/jszip-load.js
+++ b/jszip-load.js
@@ -7,7 +7,7 @@
Dual licenced under the MIT license or GPLv3. See LICENSE.markdown.
**/
-/*global JSZip,JSZipBase64 */
+/*global JSZip */
(function () {
/**
@@ -509,8 +509,9 @@
JSZip.prototype.load = function(data, options) {
var files, zipEntries, i, input;
options = options || {};
+
if(options.base64) {
- data = JSZipBase64.decode(data);
+ data = JSZip.Base64.decode(data);
}
zipEntries = new ZipEntries(data, options);
diff --git a/jszip.js b/jszip.js
index 18eafc7..527564b 100644
--- a/jszip.js
+++ b/jszip.js
@@ -7,6 +7,11 @@
Dual licenced under the MIT license or GPLv3. See LICENSE.markdown.
Usage:
+ // CommonJS
+ var JSZip = require("jszip");
+ // Require.js
+ requirejs(["jszip"], function (JSZip) { ... });
+
zip = new JSZip();
zip.file("hello.txt", "Hello, World!").add("tempfile", "nothing");
zip.folder("images").file("smile.gif", base64Data, {base64: true});
@@ -17,6 +22,22 @@
**/
+// UMD from https://github.com/umdjs/umd/blob/master/returnExports.js
+(function (root, factory) {
+ if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like enviroments that support module.exports,
+ // like Node.
+ module.exports = factory();
+ } else if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(factory);
+ } else {
+ // Browser globals (root is window)
+ root.JSZip = factory();
+ }
+}(this, function () {
+
/**
* Representation a of zip file in js
* @constructor
@@ -857,7 +878,7 @@
*
* Hacked so that it doesn't utf8 en/decode everything
**/
-var JSZipBase64 = (function() {
+var JSZipBase64 = JSZip.Base64 = (function() {
// private property
var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
@@ -931,5 +952,9 @@
};
}());
+return JSZip;
+
+}));
+
// enforcing Stuk's coding style
// vim: set shiftwidth=3 softtabstop=3:
diff --git a/test/index.html b/test/index.html
index a299356..f33775a 100644
--- a/test/index.html
+++ b/test/index.html
@@ -176,7 +176,7 @@
zip.file("Hello.txt", "Hello World\n");
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
/*
Expected differing bytes:
@@ -198,7 +198,7 @@
zip.file("Hello.txt", "Hello World\n");
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
/*
Expected differing bytes:
@@ -239,7 +239,7 @@
zip.file("Hello.txt", "Hello World\n", {date : new Date("July 17, 2009 14:36:57")});
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
/*
Expected differing bytes:
@@ -259,7 +259,7 @@
zip.file("smile.gif", "R0lGODdhBQAFAIACAAAAAP/eACwAAAAABQAFAAACCIwPkWerClIBADs=", {base64: true});
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
equals(reload(actual), actual, "Generated ZIP can be parsed");
@@ -270,7 +270,7 @@
zip.folder("folder");
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
equals(reload(actual), actual, "Generated ZIP can be parsed");
@@ -282,7 +282,7 @@
zip.folder("images").file("smile.gif", "R0lGODdhBQAFAIACAAAAAP/eACwAAAAABQAFAAACCIwPkWerClIBADs=", {base64: true});
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
/*
Expected differing bytes:
@@ -321,7 +321,7 @@
// these changes won't be used
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
});
@@ -383,7 +383,7 @@
zip.remove("Remove.txt");
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
@@ -395,7 +395,7 @@
zip.remove("folder/Remove.txt");
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
});
@@ -407,7 +407,7 @@
folder.remove("Remove.txt");
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
});
@@ -419,7 +419,7 @@
zip.remove("remove");
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
@@ -434,7 +434,7 @@
zip.remove("remove");
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
@@ -447,7 +447,7 @@
zip.folder("folder").remove("1");
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
equals(reload(actual), actual, "Generated ZIP can be parsed");
@@ -692,7 +692,7 @@
});
var content = zip.generate();
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
@@ -703,7 +703,7 @@
zip.file("Hello.txt", "Hello World\n");
var content = zip.generate({compression:'STORE'});
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
// no difference with the "Zip text file" test.
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
@@ -715,7 +715,7 @@
zip.file("Hello.txt", "This a looong file : we need to see the difference between the different compression methods.\n");
var content = zip.generate({compression:'STORE'});
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
});
@@ -726,7 +726,7 @@
zip.file("Hello.txt", "This a looong file : we need to see the difference between the different compression methods.\n");
var content = zip.generate({compression:'DEFLATE'});
- var actual = JSZipBase64.decode(content);
+ var actual = JSZip.Base64.decode(content);
ok(similar(actual, expected, 18) , "Generated ZIP matches reference ZIP");
});