diff --git a/doc/api/zlib.markdown b/doc/api/zlib.markdown index 8ade5a8205..68087ead66 100644 --- a/doc/api/zlib.markdown +++ b/doc/api/zlib.markdown @@ -195,36 +195,44 @@ the header. All of these take a string or buffer as the first argument, an optional second -argument to supply options to the zlib classes and an optional callback. If a -callback is supplied, they will call it asynchronously with -`callback(error, result)`, otherwise they will return the result or throw the -error synchronously. +argument to supply options to the zlib classes and will call the supplied +callback with `callback(error, result)`. -## zlib.deflate(buf, [options], [callback]) +Every method has a `*Sync` counterpart, which accept the same arguments, but +without a callback. + +## zlib.deflate(buf, [options], callback) +## zlib.deflateSync(buf, [options]) Compress a string with Deflate. -## zlib.deflateRaw(buf, [options], [callback]) +## zlib.deflateRaw(buf, [options], callback) +## zlib.deflateRawSync(buf, [options]) Compress a string with DeflateRaw. -## zlib.gzip(buf, [options], [callback]) +## zlib.gzip(buf, [options], callback) +## zlib.gzipSync(buf, [options]) Compress a string with Gzip. -## zlib.gunzip(buf, [options], [callback]) +## zlib.gunzip(buf, [options], callback) +## zlib.gunzipSync(buf, [options]) Decompress a raw Buffer with Gunzip. -## zlib.inflate(buf, [options], [callback]) +## zlib.inflate(buf, [options], callback) +## zlib.inflateSync(buf, [options]) Decompress a raw Buffer with Inflate. -## zlib.inflateRaw(buf, [options], [callback]) +## zlib.inflateRaw(buf, [options], callback) +## zlib.inflateRawSync(buf, [options]) Decompress a raw Buffer with InflateRaw. -## zlib.unzip(buf, [options], [callback]) +## zlib.unzip(buf, [options], callback) +## zlib.unzipSync(buf, [options]) Decompress a raw Buffer with Unzip. diff --git a/lib/zlib.js b/lib/zlib.js index ae37fcf1c4..0c63997d70 100644 --- a/lib/zlib.js +++ b/lib/zlib.js @@ -115,6 +115,10 @@ exports.deflate = function(buffer, opts, callback) { return zlibBuffer(new Deflate(opts), buffer, callback); }; +exports.deflateSync = function(buffer, opts) { + return zlibBufferSync(new Deflate(opts), buffer); +}; + exports.gzip = function(buffer, opts, callback) { if (util.isFunction(opts)) { callback = opts; @@ -123,6 +127,10 @@ exports.gzip = function(buffer, opts, callback) { return zlibBuffer(new Gzip(opts), buffer, callback); }; +exports.gzipSync = function(buffer, opts) { + return zlibBufferSync(new Gzip(opts), buffer); +}; + exports.deflateRaw = function(buffer, opts, callback) { if (util.isFunction(opts)) { callback = opts; @@ -131,6 +139,10 @@ exports.deflateRaw = function(buffer, opts, callback) { return zlibBuffer(new DeflateRaw(opts), buffer, callback); }; +exports.deflateRawSync = function(buffer, opts) { + return zlibBufferSync(new DeflateRaw(opts), buffer); +}; + exports.unzip = function(buffer, opts, callback) { if (util.isFunction(opts)) { callback = opts; @@ -139,6 +151,10 @@ exports.unzip = function(buffer, opts, callback) { return zlibBuffer(new Unzip(opts), buffer, callback); }; +exports.unzipSync = function(buffer, opts) { + return zlibBufferSync(new Unzip(opts), buffer); +}; + exports.inflate = function(buffer, opts, callback) { if (util.isFunction(opts)) { callback = opts; @@ -147,6 +163,10 @@ exports.inflate = function(buffer, opts, callback) { return zlibBuffer(new Inflate(opts), buffer, callback); }; +exports.inflateSync = function(buffer, opts) { + return zlibBufferSync(new Inflate(opts), buffer); +}; + exports.gunzip = function(buffer, opts, callback) { if (util.isFunction(opts)) { callback = opts; @@ -155,6 +175,10 @@ exports.gunzip = function(buffer, opts, callback) { return zlibBuffer(new Gunzip(opts), buffer, callback); }; +exports.gunzipSync = function(buffer, opts) { + return zlibBufferSync(new Gunzip(opts), buffer); +}; + exports.inflateRaw = function(buffer, opts, callback) { if (util.isFunction(opts)) { callback = opts; @@ -163,11 +187,11 @@ exports.inflateRaw = function(buffer, opts, callback) { return zlibBuffer(new InflateRaw(opts), buffer, callback); }; -function zlibBuffer(engine, buffer, callback) { - if (!util.isFunction(callback)) { - return zlibBufferSync(engine, buffer, callback); - } +exports.inflateRawSync = function(buffer, opts) { + return zlibBufferSync(new InflateRaw(opts), buffer); +}; +function zlibBuffer(engine, buffer, callback) { var buffers = []; var nread = 0; @@ -200,7 +224,7 @@ function zlibBuffer(engine, buffer, callback) { } } -function zlibBufferSync(engine, buffer, callback) { +function zlibBufferSync(engine, buffer) { if (util.isString(buffer)) buffer = new Buffer(buffer); if (!util.isBuffer(buffer)) diff --git a/test/simple/test-zlib-convenience-methods.js b/test/simple/test-zlib-convenience-methods.js index 43b68d15ba..88cf82f04c 100644 --- a/test/simple/test-zlib-convenience-methods.js +++ b/test/simple/test-zlib-convenience-methods.js @@ -58,15 +58,15 @@ var opts = { }); }); - var result = zlib[method[0]](expect, opts); - result = zlib[method[1]](result, opts); + var result = zlib[method[0] + 'Sync'](expect, opts); + result = zlib[method[1] + 'Sync'](result, opts); assert.equal(result, expect, 'Should get original string after ' + method[0] + '/' + method[1] + ' with options.'); hadRun++; - result = zlib[method[0]](expect); - result = zlib[method[1]](result); + result = zlib[method[0] + 'Sync'](expect); + result = zlib[method[1] + 'Sync'](result); assert.equal(result, expect, 'Should get original string after ' + method[0] + '/' + method[1] + ' without options.');