Package Exports
- npm-registry-package-info
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (npm-registry-package-info) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Package Info
Get package information for one or more packages.
Installation
$ npm install npm-registry-package-info
Usage
var pkginfo = require( 'npm-registry-package-info' );
pkginfo( opts, clbk )
Get package information for one or more packages.
var opts = {
'packages': [
'dstructs-matrix',
'compute-erf',
'utils-copy',
'unknown_package_name'
]
};
pkginfo( opts, clbk );
function clbk( error, data ) {
if ( error ) {
throw error;
}
console.dir( data );
/*
{
"meta": {
"total": 4,
"success": 3,
"failure": 1
},
"data": {
"dstructs-matrix": {...},
"compute-erf": {...},
"utils-copy": {...}
},
"failures": {
"unknown_package_name": "Not Found"
}
}
*/
}
The function
accepts the following options
:
- packages:
array
of package names (required). - registry: registry. Default:
'registry.npmjs.org'
. - port: registry port. Default:
443
(HTTPS) or80
(HTTP). __protocol__: registry protocol. Default: `'https'`.
__latest__: `boolean` indicating whether to return only the __latest__ package information from a registry.
To query an alternative registry, set the relevant options.
var opts = {
'packages': [
'dstructs-array',
'flow-map',
'utils-merge2'
],
'registry': 'my.favorite.npm/registry',
'port': 80,
'latest': true,
'protocol': 'http'
};
pkginfo( opts, clbk );
pkginfo.factory( opts, clbk )
Creates a reusable function
.
var pkgs = [
'dstructs-matrix',
'compute-stdev',
'compute-variance'
];
var get = pkginfo.factory( {'packages': pkgs}, clbk );
get();
get();
get();
// ...
The factory method accepts the same options
as pkginfo()
.
Notes
- If the module encounters an application-level
error
(e.g., no network connection, non-existent registry, etc), thaterror
is returned immediately to the providedcallback
. - If the module encounters a downstream
error
(e.g., timeout, reset connection, etc), thaterror
is included in the returned results under thefailures
field.
Examples
var ls = require( 'npm-list-author-packages' );
var pkginfo = require( 'npm-registry-package-info' );
var opts = {
'username': 'kgryte'
};
ls( opts, onList );
function onList( error, list ) {
var opts;
if ( error ) {
throw error;
}
if ( !list.length ) {
return;
}
opts = {
'packages': list
};
pkginfo( opts, onInfo );
}
function onInfo( error, data ) {
if ( error ) {
throw error;
}
console.dir( data );
}
To run the example code from the top-level application directory,
$ DEBUG=* node ./examples/index.js
CLI
Installation
To use the module as a general utility, install the module globally
$ npm install -g npm-registry-package-info
Usage
Usage: pkginfo [options] pkg1 pkg2 ...
Options:
-h, --help Print this message.
-V, --version Print the package version.
-p, --port port Registry port. Default: 443 (HTTPS) or 80 (HTTP).
--registry registry Registry. Default: 'registry.npmjs.org'.
--protocol protocol Registry protocol. Default: 'https'.
--latest Only return the latest package entry.
Notes
- If a package is successfully resolved, the package info is written to
stdout
. - If a package cannot be resolved due to a downstream
error
(failure), the package (and its associatederror
) is written tosterr
. - Output order is not guaranteed to match input order.
Examples
$ DEBUG=* pkginfo dstructs-matrix compute-erf utils-copy
# => {...}
Tests
Unit
This repository uses tape for unit tests. To run the tests, execute the following command in the top-level application directory:
$ make test
All new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
Browser Support
This repository uses Testling for browser testing. To run the tests in a (headless) local web browser, execute the following command in the top-level application directory:
$ make test-browsers
To view the tests in a local web browser,
$ make view-browser-tests
License
Copyright
Copyright © 2016. Athan Reines.