| 123456789101112131415161718192021222324252627282930313233 | module.exports = function (/*Buffer*/ inbuf) {    var zlib = require("zlib");    var opts = { chunkSize: (parseInt(inbuf.length / 1024) + 1) * 1024 };    return {        deflate: function () {            return zlib.deflateRawSync(inbuf, opts);        },        deflateAsync: function (/*Function*/ callback) {            var tmp = zlib.createDeflateRaw(opts),                parts = [],                total = 0;            tmp.on("data", function (data) {                parts.push(data);                total += data.length;            });            tmp.on("end", function () {                var buf = Buffer.alloc(total),                    written = 0;                buf.fill(0);                for (var i = 0; i < parts.length; i++) {                    var part = parts[i];                    part.copy(buf, written);                    written += part.length;                }                callback && callback(buf);            });            tmp.end(inbuf);        }    };};
 |