2 var duplexer = require('duplexer');
3 var stream = require('stream');
4 var zlib = require('zlib');
7 module.exports = function (str, cb) {
13 zlib.gzip(str, opts, function (err, data) {
23 module.exports.sync = function (str) {
24 return zlib.gzipSync(str, opts).length;
27 module.exports.stream = function () {
28 var input = new stream.PassThrough();
29 var output = new stream.PassThrough();
30 var wrapper = duplexer(input, output);
33 var gzip = zlib.createGzip(opts)
34 .on('data', function (buf) {
35 gzipSize += buf.length;
37 .on('error', function () {
40 .on('end', function () {
41 wrapper.gzipSize = gzipSize;
42 wrapper.emit('gzip-size', gzipSize);
47 input.pipe(output, {end: false});