You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					56 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					56 lines
				
				1.5 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								"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" : {...}
							 | 
						||
| 
								 | 
							
								    // }
							 | 
						||
| 
								 | 
							
								    // NOTE: we use a null prototype because we do not
							 | 
						||
| 
								 | 
							
								    // want filenames like "toString" coming from a zip file
							 | 
						||
| 
								 | 
							
								    // to overwrite methods and attributes in a normal Object.
							 | 
						||
| 
								 | 
							
								    this.files = Object.create(null);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    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.10.1";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								JSZip.loadAsync = function (content, options) {
							 | 
						||
| 
								 | 
							
								    return new JSZip().loadAsync(content, options);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								JSZip.external = require("./external");
							 | 
						||
| 
								 | 
							
								module.exports = JSZip;
							 |