lifion-verify-deps
Version:
Verifies that installed NPM modules are the latest currently available version.
185 lines (121 loc) • 8.55 kB
Markdown
# lifion-verify-deps
Verifies that installed NPM modules are the latest currently available version.
## Getting Started
To install the module:
```sh
npm install lifion-verify-deps --global
```
To run command:
```sh
lifion-verify-deps
```
To use as module:
```sh
const verifyDeps = require('lifion-verify-deps');
verifyDeps({ dir: './path-to/project-directory' })
.then(() => /* all installed packages up to date */)
.catch((err) => /* there are packages to be updated */)
```
## API Reference
- [lifion-verify-deps](#module_lifion-verify-deps)
- [verifyDeps([options])](#exp_module_lifion-verify-deps--verifyDeps) ⏏
- [~isValidNpmPackageName(name)](#module_lifion-verify-deps--verifyDeps..isValidNpmPackageName)
- [~getLatestVersions(name)](#module_lifion-verify-deps--verifyDeps..getLatestVersions) ⇒ <code>Promise.<Array.<string>></code>
- [~getLatestTag(name)](#module_lifion-verify-deps--verifyDeps..getLatestTag) ⇒ <code>Promise.<string></code>
- [~getLatestVersion(name, wanted)](#module_lifion-verify-deps--verifyDeps..getLatestVersion) ⇒ <code>Promise.<string></code>
- [~getInstalledVersion(currentDir, name, logger)](#module_lifion-verify-deps--verifyDeps..getInstalledVersion) ⇒ <code>string</code> \| <code>null</code>
- [~pushPkgs(params)](#module_lifion-verify-deps--verifyDeps..pushPkgs) ⇒ <code>Array.<Promise.<PackageStatus>></code>
- [~getPkgIds(filteredPkgs)](#module_lifion-verify-deps--verifyDeps..getPkgIds) ⇒ <code>string</code>
- [~removeLockedDependencies(deps)](#module_lifion-verify-deps--verifyDeps..removeLockedDependencies) ⇒ <code>Object.<string, string></code> \| <code>Object</code>
<a name="exp_module_lifion-verify-deps--verifyDeps"></a>
### verifyDeps([options]) ⏏
Verifies the dependencies listed in the package.json of the given directory.
**Kind**: Exported function
| Param | Type | Default | Description |
| --------------------- | ------------------------------ | ------------------ | ------------------------------------------------------------ |
| [options] | <code>Object</code> | | Optional parameters. |
| [options.autoUpgrade] | <code>boolean</code> | <code>false</code> | Automatically upgrade all suggested dependencies. |
| [options.dir] | <code>string</code> | | The path where to look for the package.json file. |
| [options.logger] | [<code>Logger</code>](#Logger) | | A logger instance, with a similar API as the console object. |
<a name="module_lifion-verify-deps--verifyDeps..isValidNpmPackageName"></a>
#### verifyDeps~isValidNpmPackageName(name)
Validates package name.
**Kind**: inner method of [<code>verifyDeps</code>](#exp_module_lifion-verify-deps--verifyDeps)
**Throws**:
- <code>Error</code> - Package name is invalid.
| Param | Type | Description |
| ----- | ------------------- | ------------- |
| name | <code>string</code> | Package name. |
<a name="module_lifion-verify-deps--verifyDeps..getLatestVersions"></a>
#### verifyDeps~getLatestVersions(name) ⇒ <code>Promise.<Array.<string>></code>
Gets available versions for provided package name.
**Kind**: inner method of [<code>verifyDeps</code>](#exp_module_lifion-verify-deps--verifyDeps)
**Returns**: <code>Promise.<Array.<string>></code> - - List of available versions.
**Throws**:
- <code>Error</code> - Output failed JSON parse.
| Param | Type | Description |
| ----- | ------------------- | ------------- |
| name | <code>string</code> | Package name. |
<a name="module_lifion-verify-deps--verifyDeps..getLatestTag"></a>
#### verifyDeps~getLatestTag(name) ⇒ <code>Promise.<string></code>
Gets latest tag from provided package name.
**Kind**: inner method of [<code>verifyDeps</code>](#exp_module_lifion-verify-deps--verifyDeps)
**Returns**: <code>Promise.<string></code> - - Return latest version, if latest tag exists.
**Throws**:
- <code>Error</code> - Output failed JSON parse.
| Param | Type | Description |
| ----- | ------------------- | ------------- |
| name | <code>string</code> | Package name. |
<a name="module_lifion-verify-deps--verifyDeps..getLatestVersion"></a>
#### verifyDeps~getLatestVersion(name, wanted) ⇒ <code>Promise.<string></code>
Finds valid upgrade version of the provided package name.
**Kind**: inner method of [<code>verifyDeps</code>](#exp_module_lifion-verify-deps--verifyDeps)
**Returns**: <code>Promise.<string></code> - - Valid upgrade version.
**Throws**:
- <code>Error</code> - Outdated version in package.json, version was likely unpublished.
| Param | Type | Description |
| ------ | ------------------- | ---------------- |
| name | <code>string</code> | Package name. |
| wanted | <code>string</code> | Package version. |
<a name="module_lifion-verify-deps--verifyDeps..getInstalledVersion"></a>
#### verifyDeps~getInstalledVersion(currentDir, name, logger) ⇒ <code>string</code> \| <code>null</code>
Gets currently installed version for provided package name.
**Kind**: inner method of [<code>verifyDeps</code>](#exp_module_lifion-verify-deps--verifyDeps)
**Returns**: <code>string</code> \| <code>null</code> - - Installed version or null if not installed.
**Throws**:
- <code>Error</code> - Unable to find installed versions, try installing node modules by running `npm i`.
| Param | Type | Description |
| ---------- | ------------------------------ | ------------------------------- |
| currentDir | <code>string</code> | Path to package.json directory. |
| name | <code>string</code> | Package name. |
| logger | [<code>Logger</code>](#Logger) | Logger flag. |
<a name="module_lifion-verify-deps--verifyDeps..pushPkgs"></a>
#### verifyDeps~pushPkgs(params) ⇒ <code>Array.<Promise.<PackageStatus>></code>
Builds list of packages to update.
**Kind**: inner method of [<code>verifyDeps</code>](#exp_module_lifion-verify-deps--verifyDeps)
**Returns**: <code>Array.<Promise.<PackageStatus>></code> - - NPM package state.
| Param | Type | Description |
| ------------- | ------------------------------------------ | ----------------------- |
| params | <code>Object</code> | Object with parameters. |
| params.deps | <code>Object.<string, string></code> | List of dependencies. |
| params.dir | <code>string</code> | Directory location. |
| params.logger | [<code>Logger</code>](#Logger) | Logging tool. |
| params.type | <code>string</code> | Type of dependency. |
<a name="module_lifion-verify-deps--verifyDeps..getPkgIds"></a>
#### verifyDeps~getPkgIds(filteredPkgs) ⇒ <code>string</code>
Formats package name for installation.
**Kind**: inner method of [<code>verifyDeps</code>](#exp_module_lifion-verify-deps--verifyDeps)
**Returns**: <code>string</code> - - Concatenated 'name@latest' for provided package.
| Param | Type | Description |
| ------------ | ---------------------------------------------------------- | ------------------- |
| filteredPkgs | [<code>Array.<PackageStatus></code>](#PackageStatus) | Package properties. |
<a name="module_lifion-verify-deps--verifyDeps..removeLockedDependencies"></a>
#### verifyDeps~removeLockedDependencies(deps) ⇒ <code>Object.<string, string></code> \| <code>Object</code>
Filters out dependencies with locked versions.
**Kind**: inner method of [<code>verifyDeps</code>](#exp_module_lifion-verify-deps--verifyDeps)
**Returns**: <code>Object.<string, string></code> \| <code>Object</code> - List of dependencies excluding locked semver versions.
| Param | Type | Description |
| ----- | ------------------------------------------ | --------------------- |
| deps | <code>Object.<string, string></code> | List of dependencies. |
## License
[Apache-2.0](./LICENSE)