0.1.4 • Published 12 years ago

npmatchub v0.1.4

Weekly downloads
3
License
-
Repository
github
Last release
12 years ago

npmatchub

build status

Attempts to match npm users who failed to provide their github name with a github account and do the same for their npm packages.

Attempt to find TJs repos on github

var repos = require('npmatchub').repos;

// metadata of TJs npm packages
var tj = require('../test/fixtures/tj'); 
var opts = {
    packages :  tj
  , trust    :  true // if github url is provided, we trust it
};

repos(opts, function (err, repos) {
  if (err) return console.error(err);
  console.log('repos: ', repos.length);
})
.on('processing', function (pack) {
  process.stderr.write('.');
})
.on('processed', function (pack, github) {
  if (github) console.error('%s: \t%s/%s', pack.name, github.login, github.repo);
  else console.error('%s: \tNOT FOUND', pack.name);
});

Status

Alpha - logins and repos are working but some more testing still needs to be done

Installation

npm install npmatchub

API

###npmmatchub.logins(packages)

/**
 * Uses the packages that do have a github url specified to guess about what the npm user's github login is
 *
 * @name logins
 * @function
 * @param packages {Array{Object}} npm metadata of the user's packages as returned by a call to
 *  'https://registry.npmjs.org/-/all/' for all users
 * @return {[Object]} possible user logins sorted by how many times they were found with that count as value
 *  each item has structure: { login, count }
 */

###npmatchub.repos(opts, cb)

/**
 * Attempts to find repo urls for the given npm packages for which it is missing.
 *
 * @name repos
 * @function
 * @param opts {
 *  packages: {[Object]} - npm packages metadata
 *  logins: {[String]} (optional) - known login names for the npm package owner, derived from packages if not supplied
 *  trust: {Boolean} - (optional) if true given repo urls will not be verified and/or fixed, default: true
 *  resolve: {Function} - (optional) overrides the algorithm that resolves github information of a package
 * @param cb {Function} calls back with a copy of the npm packages metadata with extra repo urls.
 * @return {EventEmitter} - emits 'processing' and 'processed' events
 */
var go = module.exports = function (opts, cb) {

Given a user's npm packages metadata, it will make a best attempt to find the github url for each package.

It will try in that order:

  • /<username>/<packagename>
  • /<username>/node-<packagename>
  • /<username>/<packagename>js
  • /<username>/js-<packagename>

License

MIT

0.1.4

12 years ago

0.1.3

12 years ago

0.1.2

12 years ago

0.1.1

12 years ago

0.1.0

12 years ago

0.0.3

12 years ago

0.0.2

12 years ago

0.0.1

12 years ago