⚠️ This project is currently in active development; use with caution. Thanks!
vf-core-service-discovery is a tool to analyse the usage of vf-core in your project.
- Table of contents
- Install
- Basic usage
- Features
- CLI documentation
- Module documentation
- What's next
- Contributing
Install the package using npm or yarn as follows:
$ npm i vf-core-service-discovery
$ yarn add vf-core-service-discovery
or globally
$ npm i -g vf-core-service-discovery
$ yarn global add vf-core-service-discovery
The main usage of vf-core-service-discovery is through a CLI.
A simple run of the following command will gather the usage of vf-core in the project:
$ vf-core-service-discovery run
An output example:
vf-core-service-discovery can also be used as a module. A use case for this is if you want to have more control on the process.
import ServiceDiscovery from 'vf-core-service-discovery';
async function run() {
const serviceDiscovery = ServiceDiscovery.getInstance();
await serviceDiscovery.setup({
forceRun: false,
verbose: true,
logFile: 'test.log',
loggingEnabled: true,
profile: false,
});
const items = await serviceDiscovery.run(true);
console.log(items);
}
run();- Get package information such as current version, latest version, and component status.
- Get changelog if current and latest versions are mismatched.
- For each installed component get the dependent files (for now only
.htmlfiles).
| Synopsis | Description |
|---|---|
run |
Run the service discovery |
config [key] [value] |
Manage the configuration |
Synopsis: vf-core-service-discovery run [options]
| Option | Type | Default | Description |
|---|---|---|---|
-v, --verbose |
boolean | false |
Show debug information |
-l, --log-file |
string | 'vf-core-service-discovery.log' |
Log file location |
-f, --force |
boolean | false |
By-pass the cache |
-p, --profile |
boolean | false |
Profile the service discovery |
-r, --reporters |
array | ['cli'] |
The reporters to use (cli, json, html) |
-d, --disabled |
array | [] |
List of disabled steps (from getConfig, getChangelog getDependents) |
-o, --only-outdated |
boolean | false |
Display only outdated components |
-m, --format |
string | '' |
Specifies the formatting for the results |
-c, --compare-versions |
boolean | false |
Shows the visual difference between different component versions |
-t, --project-type |
string | autoDetect |
Defines the project type for use in the dependents discovery phase. Possible values are: html, angular, react, autoDetect |
-i, --ignore |
array | [node_modules] |
Defines the ignored paths for the dependents discovery phase |
If you would like to use your own formatting for displaying the results in the CLI you can specify the --format option.
The following tokens are used for displaying specific information for each discovery item:
%name: component name%usedVersion: the version installed by your project%latestVersion: the package's latest version%changelog(...): the changelog if applicable (i.e. if used version != latest version)%changelog(...%version...): the version of a changelog item%changelog(...%changes(...)...): the changes of a changelog item%changes(...$change...): the actual change in a changelog item$dependents(...): the dependents$dependents(...$depenent...): the dependent item
Examples
$ vf-core-service-discovery --format "%name (%usedVersion, %latestVersion)"
$ ...
$ vf-box (1.5.6, 1.6.0)
$ vf-card (2.1.4, 2.1.4)
$ vf-core-service-discovery --format "%name\nChangelog\n%changelog(%version\n%changes(> %change)\n)"
$ vf-box
$ Changelog
$ 2.3.0
$ > updates font size for title/heading> makes sure the text is black inside the `--easy` variant.
$ vf-grid
$ Changelog
$ 1.4.0
$ > fixes flexbox fallback grid when there are items on two or more rows> fixes widths on flexbox fallback grid.
$ 1.3.0
$ > makes the layout something that can now use 'extends' within nunjucks
Synopsis: vf-core-service-discovery config [key] [value] [options]
| Key | Value | Default | Description |
|---|---|---|---|
cacheExpiry |
string | '8h' |
Time before the cache expires |
lastInvalidation |
Date | null |
Last time the cache has been invalidated |
vfCoreVersion |
string | '' |
Latest vf-core release version |
| Option | Type | Default | Description |
|---|---|---|---|
-v, --verbose |
boolean | false |
Show debug information |
-l, --log-file |
string | 'vf-core-service-discovery.log' |
Log file location |
-r, --reset |
boolean | false |
Reset configuration to defaults |
Check the module documentation here: https://oss6.github.io/vf-core-service-discovery.
- Find dependents in different types of projects (for a start Angular and React).
- API documentation using TypeDoc.
- Add performance tests.
We welcome contributors and maintainers! To contribute please check the contributing page out.

