0.5.0 • Published 6 months ago
@springernature/util-package-finder v0.5.0
Package Finder
Get a list of packages and available versions from within an NPM scope. Returns the following information about a package:
namethe package name on NPMlatestthe latest version of the packageversionsarray of all versions of the package (optional)statusthe status based on the latest version (see below)descriptionthe package descriptionnpma link to the package on NPMdateISO 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-finderInstalling 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-finderCommand 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,localLicense
MIT License © 2018, Springer Nature