38 lines
880 B
JavaScript
38 lines
880 B
JavaScript
|
|
var Q = require('q');
|
||
|
|
var PackageRepository = require('../core/PackageRepository');
|
||
|
|
var defaultConfig = require('../config');
|
||
|
|
|
||
|
|
function lookup(logger, name, config) {
|
||
|
|
if (!name) {
|
||
|
|
return new Q(null);
|
||
|
|
}
|
||
|
|
|
||
|
|
config = defaultConfig(config);
|
||
|
|
|
||
|
|
var repository = new PackageRepository(config, logger);
|
||
|
|
var registryClient = repository.getRegistryClient();
|
||
|
|
|
||
|
|
return Q.nfcall(registryClient.lookup.bind(registryClient), name).then(
|
||
|
|
function(entry) {
|
||
|
|
return !entry
|
||
|
|
? null
|
||
|
|
: {
|
||
|
|
name: name,
|
||
|
|
url: entry.url
|
||
|
|
};
|
||
|
|
}
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
// -------------------
|
||
|
|
|
||
|
|
lookup.readOptions = function(argv) {
|
||
|
|
var cli = require('../util/cli');
|
||
|
|
var options = cli.readOptions(argv);
|
||
|
|
var name = options.argv.remain[1];
|
||
|
|
|
||
|
|
return [name];
|
||
|
|
};
|
||
|
|
|
||
|
|
module.exports = lookup;
|