Package Finder
Get a list of packages and available versions from within an NPM scope. Returns the following information about a package:
-
name
the package name on NPM -
latest
the latest version of the package -
versions
array of all versions of the package (optional) -
status
the status based on the latest version (see below) -
description
the package description -
npm
a link to the package on NPM -
date
ISO 8601/W3C Datetime when last published
Status
The status of a package is evaluated by checking the latest version and assigning one of the following:
Status | Rule |
---|---|
production | >= 1.0.0 |
development |
>= 0.1.0 , < 1.0.0
|
experimental |
>= 0.0.1 , < 0.1.0
|
Install
$ npm install @springernature/util-package-finder
Installing util-package-finder
adds command line exectuables to ./node_modules/.bin/
.
API
const packageFinder = require('@springernature/util-package-finder');
packageFinder({options})
Return: Promise<array>
It resolves with an array of objects, with each object detailing a package within the scope
options
scope
Type: String
Default: springernature
The scope to search within
filters
Type: Array
An array of strings
that represent package prefixes used within the springernature toolkits
versions
Type: Boolean
Default: false
Get a list of all available versions
Examples
const packageFinder = require('util-package-finder');
packageFinder()
.then(response => {
console.log(response);
}).catch(err => {
console.error(err);
});
/*
[{ name: '@springernature/a-package',
latest: '0.1.2',
versions: null,
status: 'development',
description: 'a package',
npm: 'https://www.npmjs.com/package/%40springernature%2Fa-package',
date: '2019-03-08T11:55:38.384Z' },
{ name: '@springernature/b-package',
latest: '2.0.0',
versions: null,
status: 'production',
description: 'another package',
npm: 'https://www.npmjs.com/package/%40springernature%2Fb-package',
date: '2019-03-08T11:55:38.384Z' }]
*/
packageFinder({
filters: ['a']
})
.then(response => {
console.log(response);
}).catch(err => {
console.error(err);
});
/*
[{ name: '@springernature/a-package',
latest: '0.1.2',
versions: null,
status: 'development',
description: 'a package',
npm: 'https://www.npmjs.com/package/%40springernature%2Fa-package',
date: '2019-03-08T11:55:38.384Z' }]
*/
packageFinder({
scope: 'acme'
})
.then(response => {
console.log(response);
}).catch(err => {
console.error(err);
});
/*
[{ name: '@acme/a-package',
latest: '0.1.2',
versions: null,
status: 'development',
description: 'a package',
npm: 'https://www.npmjs.com/package/%40acme%2Fa-package',
date: '2019-03-08T11:55:38.384Z' }]
*/
packageFinder({
versions: true,
filters: ['a']
})
.then(response => {
console.log(response);
}).catch(err => {
console.error(err);
});
/*
[{ name: '@springernature/a-package',
latest: '0.1.2',
versions: ['0.1.0', '0.1.2'],
status: 'development',
description: 'a package',
npm: 'https://www.npmjs.com/package/%40springernature%2Fa-package',
date: '2019-03-08T11:55:38.384Z' }]
*/
CLI
The package finder also comes with a command line option:
$ ./node_modules/.bin/util-package-finder
Command line arguments
$ util-package-finder --help
Usage
util-package-finder [options]
Options
--json, -j Return results as JSON
--scope, -s Set the scope (default: springernature)
--all, -a Get all available versions
--filters, -f Comma seperated list of name filters
Examples
util-package-finder
util-package-finder -j
util-package-finder -s springernature
util-package-finder -a
util-package-finder -f global,local
util-package-finder -j -a -f global,local
License
MIT License © 2018, Springer Nature