Esempio n. 1
0
	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);
			}
		);
	};
Esempio n. 2
0
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;
};
Esempio n. 3
0
	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);
			}
		);
	};