function Zopfli(format, options) { this.first = true; this.adler = 0x01; this.crc = null; this.format = format || 'deflate'; this.options = defaults(options, defaultOptions); this.in = new Buffer(0); Transform.prototype.constructor.apply(this, arguments); }
n/a
compress = function (buffer, type, options, callback) { if (typeof callback === 'undefined' && typeof options === 'function') { callback = options; options = {}; } options = options || {}; if (typeof callback === 'function') { zopfli.deflate(buffer, type, options, callback); } else { return new Promise(function(resolve, reject) { zopfli.deflate(buffer, type, options, function(err, data) { if (err) { reject(err); } else { resolve(data); } }); }); } }
...
}
});
});
}
};
Zopfli.gzip = function(buffer, options, callback) {
return Zopfli.compress(buffer, 'gzip', options, callback);
};
Zopfli.zlib = function(buffer, options, callback) {
return Zopfli.compress(buffer, 'zlib', options, callback);
};
Zopfli.deflate = function(buffer, options, callback) {
...
createDeflate = function (options) { return new Zopfli('deflate', options); }
n/a
createGzip = function (options) { return new Zopfli('gzip', options); }
...
### Usage examples
#### Stream (async):
```js
var zopfli = require('node-zopfli');
fs.createReadStream('file.js')
.pipe(zopfli.createGzip(options))
.pipe(fs.createWriteStream('file.js.gz'));
```
Instead of `zopfli.createGzip`, you can also use
```js
new Zopfli('gzip', options);
...
createZlib = function (options) { return new Zopfli('zlib', options); }
n/a
deflate = function (buffer, options, callback) { return Zopfli.compress(buffer, 'deflate', options, callback); }
...
```
#### Buffer (async):
```js
var zopfli = require('node-zopfli');
var input = new Buffer('I want to be compressed');
zopfli.deflate(input, options, function(err, deflated) {});
zopfli.zlib(input, options, function(err, zlibed) {});
zopfli.gzip(input, options, function(err, gziped) {});
```
#### Buffer (sync):
```js
...
deflateSync = function (buffer, options) { return zopfli.deflateSync(buffer, 'deflate', options); }
...
```
#### Buffer (sync):
```js
var zopfli = require('node-zopfli');
var input = new Buffer('I want to be compressed');
var deflated = zopfli.deflateSync(input, options);
var zlibed = zopfli.zlibSync(input, options);
var gziped = zopfli.gzipSync(input, options);
```
### API
#### compress(input, format, [options, callback])
...
gzip = function (buffer, options, callback) { return Zopfli.compress(buffer, 'gzip', options, callback); }
...
#### Buffer (async):
```js
var zopfli = require('node-zopfli');
var input = new Buffer('I want to be compressed');
zopfli.deflate(input, options, function(err, deflated) {});
zopfli.zlib(input, options, function(err, zlibed) {});
zopfli.gzip(input, options, function(err, gziped) {});
```
#### Buffer (sync):
```js
var zopfli = require('node-zopfli');
var input = new Buffer('I want to be compressed');
...
gzipSync = function (buffer, options) { return zopfli.deflateSync(buffer, 'gzip', options); }
...
#### Buffer (sync):
```js
var zopfli = require('node-zopfli');
var input = new Buffer('I want to be compressed');
var deflated = zopfli.deflateSync(input, options);
var zlibed = zopfli.zlibSync(input, options);
var gziped = zopfli.gzipSync(input, options);
```
### API
#### compress(input, format, [options, callback])
`input` is the input buffer
...
function Transform(options) { if (!(this instanceof Transform)) return new Transform(options); Duplex.call(this, options); this._transformState = new TransformState(this); var stream = this; // start out asking for a readable event once data is transformed. this._readableState.needReadable = true; // we have implemented the _read method, and done the other things // that Readable wants before the first _read call, so unset the // sync guard flag. this._readableState.sync = false; if (options) { if (typeof options.transform === 'function') this._transform = options.transform; if (typeof options.flush === 'function') this._flush = options.flush; } // When the writable side finishes, then flush out anything remaining. this.once('prefinish', function() { if (typeof this._flush === 'function') this._flush(function(er) { done(stream, er); }); else done(stream); }); }
n/a
zlib = function (buffer, options, callback) { return Zopfli.compress(buffer, 'zlib', options, callback); }
...
#### Buffer (async):
```js
var zopfli = require('node-zopfli');
var input = new Buffer('I want to be compressed');
zopfli.deflate(input, options, function(err, deflated) {});
zopfli.zlib(input, options, function(err, zlibed) {});
zopfli.gzip(input, options, function(err, gziped) {});
```
#### Buffer (sync):
```js
var zopfli = require('node-zopfli');
...
zlibSync = function (buffer, options) { return zopfli.deflateSync(buffer, 'zlib', options); }
...
#### Buffer (sync):
```js
var zopfli = require('node-zopfli');
var input = new Buffer('I want to be compressed');
var deflated = zopfli.deflateSync(input, options);
var zlibed = zopfli.zlibSync(input, options);
var gziped = zopfli.gzipSync(input, options);
```
### API
#### compress(input, format, [options, callback])
...