code: function _transform(chunk, encoding, cb) {
    if(this.raw) {
      this.emit('data', chunk, encoding);
      return cb();
    }
    /* istanbul ignore if: optional dependency */
    if(this.reader) {
      var reply;
      this.reader.feed(chunk);
      try {
        while((reply = this.reader.get()) !== undefined) {
          if(reply && reply.constructor === Error) {
            this.emit("reply", reply, null);
          }else{
            this.emit("reply", null, reply);
          }
        }
      }catch(err) {
        this.emit("error", err);
      }
    }else{
      //console.dir('decoder: ' + chunk);
      //console.dir('decoder chunk byte: ' + String.fromCharCode(chunk[0]));
      if(chunk.length) {
        var type = this._type(chunk, true);
        if(type === undefined && !this._buffer.length) {
          return this._abort(
            new Error(
              'protocol error, got "'
              + String.fromCharCode(chunk[0]) + '" as reply type byte'));
        }
        this._buffer = Buffer.concat(
          [this._buffer, chunk], this._buffer.length + chunk.length);
        this._offset = 0;
        this._parse(this._buffer);
      }
    }
    cb();
  }
docs: Stream transform function.