Ejemplo n.º 1
0
exports.downloads = function(req, res){
  var repoName = req.params.repository;
  if(!repoName)
    res.json(500, { error: true, message: "not valid repository"});

  var registry = npmStats();

  registry.module(repoName).downloads(function(err, data){
    if(err)
      res.json(400, { error: true, message: "api error", details: err});
    else {
      if(req.query.checkItExists && (!data || data.length == 0)){
        registry.module(repoName).info(function(err, data){
          if(err)
            res.json({ error: true, message: (err.reason == 'missing' ? "The module is missing" : err.reason), details: err });
          else {
            res.json(200, []);
          }
        });
      } else {
        var mapped = [];
        
        for(var i = 0; i < data.length; i++)
          mapped.push([data[i].date, data[i].value]);

        res.json(mapped);
      }
    }
  });
};
Ejemplo n.º 2
0
exports.info = function(req, res){
  var repoName = req.params.repository;
  if(!repoName)
    res.json(500, { error: true, message: "not valid repository"});

  var registry = npmStats();

  registry.module(repoName).info(function(err, data){
    res.json(err ? err : data);
  });
};
Ejemplo n.º 3
0
exports.repositories = function(req, res){
  var userName = req.params.username;
  if(!userName)
    res.json(500, { error: true, message: "not valid username"});

  var registry = npmStats();

  registry.user(userName).list(function(err, data){
    if(err)
      res.json(400, { error: true, message: "api error", details: err});
    else {
      var mapped = [];

      for(var i = 0; i < data.length; i++)
        if(data[i] && data[i] != '')
          mapped.push(data[i]);

      res.json(mapped);
    }
  });
};
Ejemplo n.º 4
0
  function downloadRegistry (msg, respond) {
    var RegistryStream = NpmStats().list()
    var context = this

    var limit = parseInt(options.updaterLimit || 0, 10)
    var counter = 0

    RegistryStream
      .pipe(JSONStream.parse('*'))
      .on('data', (pkgId) => {
        if (limit && counter >= limit) {
          context.log.info('Updater limit exceeded: ', counter, limit)
          return
        }
        context.log.info(`Add to execution queue module ${pkgId}`)

        queue.push({name: pkgId, context: context}, respond)
        counter++
      })
    respond(null, {
      message: 'downloading'
    })
  }
Ejemplo n.º 5
0
var npmStats = require('npm-stats');
var _ = require('lodash');

var from = function(){
  var d = new Date();
  d.setHours(d.getHours() - 30);
  return d;
};

var to = function(){
  var d = new Date();
  d.setHours(d.getHours() - 24);
  return d;
};

var registry = npmStats();

var getUpdated = function(callback){
  registry.listByDate({ since: from(), until: to() }, function(err, r){
    if(err){ return callback(err); }

    var result = _(r)
      .chain()
      .map(function(item){
        return item.name;
      })
      .uniq()
      .value();

    callback(null, result);
  });