var onlastupdated = function(seq) { pump( request('https://skimdb.npmjs.com/registry/_changes?since='+seq), JSONStream.parse('results.*'), stream.transform(function(row, enc, callback) { ensureModule(row.id, function retry (err, fresh, stale) { if (err && opts.maxAge) { opts.forceRetryError = true; return ensureModule(row.id, retry); } opts.forceRetryError = false; if (err) return callback(err); if (!stale || !fresh) return callback(null, row); ensureDependencies(fresh, stale, function() { callback(err, row); }); }); }), stream.writable(function(row, enc, callback) { level.meta.put('modules', {seq: row.seq}, callback); }), function(err) { ended = true; progress.emit('end', err); } ); };
exports.update = function(callback) { var progress = new EventEmitter(); pump( level.users.createKeyStream(), stream.transform(function(id, enc, callback) { updateUser(id, callback); }), stream.writable(function(user, enc, callback) { progress.emit('user', user); callback(); }), function(err) { progress.emit('end', err); } ); return progress; };
var onlastupdated = function(date) { pump( request('http://registry.npmjs.org/-/_view/browseUpdated?group_level=2&startkey='+encJSON([date])), JSONStream.parse('rows.*'), stream.transform(function(row, enc, callback) { ensureModule(row.key[1], function(err, fresh, stale) { if (err) return callback(err); if (!stale || !fresh) return callback(null, row.key[0]); ensureDependencies(fresh, stale, function() { callback(err, row.key[0]); }); }); }), stream.writable(function(updated, enc, callback) { mongo.meta.update({_id:'modules'}, {$set:{updated:new Date(updated)}}, {upsert:true}, callback); }), function(err) { ended = true; progress.emit('end', err); } ); };