0.4.2 • Published 3 years ago
@springernature/util-package-finder v0.4.2
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 NPMlatest
the latest version of the packageversions
array of all versions of the package (optional)status
the status based on the latest version (see below)description
the package descriptionnpm
a link to the package on NPMdate
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