var through = require('through2');

module.exports = function(fn) {
  var buf = [];
  var end = function(cb) {
    this.push(buf);
    cb();
    if(fn) fn(null, buf);
  };
  var push = function(data, enc, cb) {
    buf.push(data);
    cb();
  };
  return through.obj(push, end);
};