コード例 #1
0
ファイル: serve-statics.js プロジェクト: mwasyou/pub-server
  // repeatable scan for single staticPath
  function scan(sp, cb) {
    cb = u.onceMaybe(cb);
    var timer = u.timer();
    sp.route = sp.route || '/';

    var src = sp.src;

    // only construct src, defaults, sendOpts etc. once
    if (!src) {
      sp.depth = sp.depth || 5;
      sp.maxAge = 'maxAge' in sp ? sp.maxAge : '10m';
      sp.includeBinaries = true;
      src = sp.src = fsbase(sp);
      if (src.isfile()) { sp.depth = 1; }
      sp.sendOpts = u.assign(
        u.pick(sp, 'maxAge', 'lastModified', 'etag'),
        { dotfiles:'ignore',
          index:false,      // handled at this level
          extensions:false, // ditto
          root:src.path } );
    }

    src.listfiles(function(err, files) {
      if (err) return cb(log(err));
      sp.files = files;
      self.scanCnt++;
      mapAllFiles();
      debug('static scan %s-deep %sms %s', sp.depth, timer(), sp.path.replace(/.*\/node_modules\//g, ''));
      debug(files.length > 10 ? '[' + files.length + ' files]' : u.pluck(files, 'filepath'));
      cb();
    });
  }
コード例 #2
0
ファイル: serialize.js プロジェクト: jldec/pub-generator
// return serializable file object
function serializeFile(file) {

  // preserve path, source, and file-save props
  var o = u.pick(file, 'path', '_oldtext', '_dirty');

  // recreate file.text from serialized fragments
  // new or modifified fragments should delete file.text
  o.text = file.text || serializeTextFragments(file);

  return o;
}