UNPKG

@springernature/util-package-finder

Version:
193 lines (152 loc) 4.57 kB
# Package Finder [![NPM version][badge-npm]][info-npm] [![Node version][badge-node]][info-node] ![MIT License][badge-license] 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 ```js const packageFinder = require('@springernature/util-package-finder'); ``` ### packageFinder({options}) Return: `Promise<array>`<br/> It resolves with an array of objects, with each object detailing a package within the scope ### options #### scope Type: `String`<br/> Default: `springernature`<br/> The scope to search within #### filters Type: `Array`<br/> An array of `strings` that represent package prefixes used within the springernature toolkits #### versions Type: `Boolean`<br/> Default: false<br/> Get a list of all available versions ## Examples ```js 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][info-license] &copy; 2018, Springer Nature [info-npm]: https://www.npmjs.com/package/@springernature/util-package-finder [badge-npm]: https://img.shields.io/npm/v/@springernature/util-package-finder.svg [info-license]: https://github.com/springernature/frontend-toolkit-utilities/blob/master/LICENCE [badge-license]: https://img.shields.io/badge/license-MIT-blue.svg [badge-node]: https://img.shields.io/badge/node->=8-brightgreen.svg [info-node]: package.json