proto/config.js
function(done) {
    var p, parser, stream, _i, _len;
    parser = this.parser();
    stream = highland(this.source());
    if (_.isArray(parser)) {
      for (_i = 0, _len = parser.length; _i < _len; _i++) {
        p = parser[_i];
        stream = this._mapWith(p)(stream).flatten().compact();
      }
    } else {
      stream = this._mapWith(parser)(stream).flatten().compact();
    }
    stream = stream.reduce({}, _.merge);
    if (done == null) {
      return stream;
    }
    stream.pull(done);
    return this;
  }
function(done) {
    var p, parser, stream, _i, _len;
    parser = this.parser();
    stream = highland(this.source());
    if (_.isArray(parser)) {
      for (_i = 0, _len = parser.length; _i < _len; _i++) {
        p = parser[_i];
        stream = this._mapWith(p)(stream).flatten().compact();
      }
    } else {
      stream = this._mapWith(parser)(stream).flatten().compact();
    }
    stream = stream.reduce({}, _.merge);
    if (done == null) {
      return stream;
    }
    stream.pull(done);
    return this;
  }
function ( done ) { var p , parser , stream , _i , _len ; parser = this . parser ( ) ; stream = highland ( this . source ( ) ) ; if ( _ . isArray ( parser ) ) { for ( _i = 0 , _len = parser . length ; _i < _len ; _i ++ ) { p = parser [ _i ] ; stream = this . _mapWith ( p ) ( stream ) . flatten ( ) . compact ( ) ; } } else { stream = this . _mapWith ( parser ) ( stream ) . flatten ( ) . compact ( ) ; } stream = stream . reduce ( { } , _ . merge ) ; if ( done == null ) { return stream ; } stream . pull ( done ) ; return this ; }
Loads all the sources and parses with a given parser, and merges the
results together.

Bad results (false, null, undefined) are skipped.

@param {Function|null} done the callback, if provided, will be called
with the result, and if not provided, the stream will be returned.

@return {this|stream} depends on whether a callback is provided.

@private
Loads all the sources and parses with a given parser and merges the results together .