index.js
function FilesNode(src, raw, config) {
  utils.define(this, 'isFilesNode', true);
  this.options = utils.omit(raw.options, ['mapDest', 'flatten', 'rename', 'filter']);
  this.src = utils.arrayify(src);

  if (this.options.resolve) {
    var cwd = path.resolve(this.options.cwd || process.cwd());
    this.src = this.src.map(function(fp) {
      return path.resolve(cwd, fp);
    });
  }

  if (raw.options.mapDest) {
    this.dest = mapDest(raw.dest, src, raw);
  } else {
    this.dest = rewriteDest(raw.dest, src, raw.options);
  }

  // copy properties to the new node
  for (var key in raw) {
    if (key !== 'src' && key !== 'dest' && key !== 'options') {
      this[key] = raw[key];
    }
  }
  util.run(config, 'filesNode', this);
}
function FilesNode(src, raw, config) {
  utils.define(this, 'isFilesNode', true);
  this.options = utils.omit(raw.options, ['mapDest', 'flatten', 'rename', 'filter']);
  this.src = utils.arrayify(src);

  if (this.options.resolve) {
    var cwd = path.resolve(this.options.cwd || process.cwd());
    this.src = this.src.map(function(fp) {
      return path.resolve(cwd, fp);
    });
  }

  if (raw.options.mapDest) {
    this.dest = mapDest(raw.dest, src, raw);
  } else {
    this.dest = rewriteDest(raw.dest, src, raw.options);
  }

  // copy properties to the new node
  for (var key in raw) {
    if (key !== 'src' && key !== 'dest' && key !== 'options') {
      this[key] = raw[key];
    }
  }
  util.run(config, 'filesNode', this);
}
function FilesNode ( src , raw , config ) { utils . define ( this , 'isFilesNode' , true ) ; this . options = utils . omit ( raw . options , [ 'mapDest' , 'flatten' , 'rename' , 'filter' ] ) ; this . src = utils . arrayify ( src ) ; if ( this . options . resolve ) { var cwd = path . resolve ( this . options . cwd || process . cwd ( ) ) ; this . src = this . src . map ( function ( fp ) { return path . resolve ( cwd , fp ) ; } ) ; } if ( raw . options . mapDest ) { this . dest = mapDest ( raw . dest , src , raw ) ; } else { this . dest = rewriteDest ( raw . dest , src , raw . options ) ; } // copy properties to the new node for ( var key in raw ) { if ( key !== 'src' && key !== 'dest' && key !== 'options' ) { this [ key ] = raw [ key ] ; } } util . run ( config , 'filesNode' , this ) ; }
Create a new `Node` with the given `src`, `raw` node and
`config` object.

@param {String|Array} `src` Glob patterns
@param {Object} `raw` FilesNode with un-expanded glob patterns.
@param {Object} `config`
@return {Object}
Create a new Node with the given src raw node and config object .