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);
- }
- };
- };
|