| 'use strict'; |
| |
| /** |
| * Representation a of zip file in js |
| * @constructor |
| */ |
| function JSZip() { |
| // if this constructor is used without `new`, it adds `new` before itself: |
| if(!(this instanceof JSZip)) { |
| return new JSZip(); |
| } |
| |
| if(arguments.length) { |
| throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); |
| } |
| |
| // object containing the files : |
| // { |
| // "folder/" : {...}, |
| // "folder/data.txt" : {...} |
| // } |
| this.files = {}; |
| |
| this.comment = null; |
| |
| // Where we are in the hierarchy |
| this.root = ""; |
| this.clone = function() { |
| var newObj = new JSZip(); |
| for (var i in this) { |
| if (typeof this[i] !== "function") { |
| newObj[i] = this[i]; |
| } |
| } |
| return newObj; |
| }; |
| } |
| JSZip.prototype = require('./object'); |
| JSZip.prototype.loadAsync = require('./load'); |
| JSZip.support = require('./support'); |
| JSZip.defaults = require('./defaults'); |
| |
| // TODO find a better way to handle this version, |
| // a require('package.json').version doesn't work with webpack, see #327 |
| JSZip.version = "3.1.5"; |
| |
| JSZip.loadAsync = function (content, options) { |
| return new JSZip().loadAsync(content, options); |
| }; |
| |
| JSZip.external = require("./external"); |
| module.exports = JSZip; |