Configring node js.
This commit is contained in:
85
node_modules/jszip/lib/flate.js
generated
vendored
Normal file
85
node_modules/jszip/lib/flate.js
generated
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
'use strict';
|
||||
var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');
|
||||
|
||||
var pako = require("pako");
|
||||
var utils = require("./utils");
|
||||
var GenericWorker = require("./stream/GenericWorker");
|
||||
|
||||
var ARRAY_TYPE = USE_TYPEDARRAY ? "uint8array" : "array";
|
||||
|
||||
exports.magic = "\x08\x00";
|
||||
|
||||
/**
|
||||
* Create a worker that uses pako to inflate/deflate.
|
||||
* @constructor
|
||||
* @param {String} action the name of the pako function to call : either "Deflate" or "Inflate".
|
||||
* @param {Object} options the options to use when (de)compressing.
|
||||
*/
|
||||
function FlateWorker(action, options) {
|
||||
GenericWorker.call(this, "FlateWorker/" + action);
|
||||
|
||||
this._pako = null;
|
||||
this._pakoAction = action;
|
||||
this._pakoOptions = options;
|
||||
// the `meta` object from the last chunk received
|
||||
// this allow this worker to pass around metadata
|
||||
this.meta = {};
|
||||
}
|
||||
|
||||
utils.inherits(FlateWorker, GenericWorker);
|
||||
|
||||
/**
|
||||
* @see GenericWorker.processChunk
|
||||
*/
|
||||
FlateWorker.prototype.processChunk = function (chunk) {
|
||||
this.meta = chunk.meta;
|
||||
if (this._pako === null) {
|
||||
this._createPako();
|
||||
}
|
||||
this._pako.push(utils.transformTo(ARRAY_TYPE, chunk.data), false);
|
||||
};
|
||||
|
||||
/**
|
||||
* @see GenericWorker.flush
|
||||
*/
|
||||
FlateWorker.prototype.flush = function () {
|
||||
GenericWorker.prototype.flush.call(this);
|
||||
if (this._pako === null) {
|
||||
this._createPako();
|
||||
}
|
||||
this._pako.push([], true);
|
||||
};
|
||||
/**
|
||||
* @see GenericWorker.cleanUp
|
||||
*/
|
||||
FlateWorker.prototype.cleanUp = function () {
|
||||
GenericWorker.prototype.cleanUp.call(this);
|
||||
this._pako = null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Create the _pako object.
|
||||
* TODO: lazy-loading this object isn't the best solution but it's the
|
||||
* quickest. The best solution is to lazy-load the worker list. See also the
|
||||
* issue #446.
|
||||
*/
|
||||
FlateWorker.prototype._createPako = function () {
|
||||
this._pako = new pako[this._pakoAction]({
|
||||
raw: true,
|
||||
level: this._pakoOptions.level || -1 // default compression
|
||||
});
|
||||
var self = this;
|
||||
this._pako.onData = function(data) {
|
||||
self.push({
|
||||
data : data,
|
||||
meta : self.meta
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
exports.compressWorker = function (compressionOptions) {
|
||||
return new FlateWorker("Deflate", compressionOptions);
|
||||
};
|
||||
exports.uncompressWorker = function () {
|
||||
return new FlateWorker("Inflate", {});
|
||||
};
|
||||
Reference in New Issue
Block a user