Skip to content

Experience-Monks/adviser

Repository files navigation

Adviser

npm npm Build Status Known Vulnerabilities npm Maintainability

Modular task runner with a linter fashion

https://jam3.github.io/adviser

Thanks @pedrohsbarroso for the logo


Table of Contents

Installation

npm install -g adviser

Usage

Adviser's goal is to run rules defined in a configuration file. It doesn't get involve in what the rules do; it just run them and control them.

In order to use it, you need to:

  1. Create a configuration file
  2. (Optional) Install the plugins you've like to use
  3. Set the rules we want to use

Run adviser

$ adviser

If you run adviser without any arguments it will try to find a valid configuration file in the current directory and continues in through the parent directories until find a configuration file.

CLI Arguments

-c, --config Specify config file path

-i, --init Run config initialization wizard

-d, --debug Output debugging information

-V, --verbose Display extra information

-t, --tags Run rules that match tags

-h, --help Show help

-v, --version Output the version number

Configuration example file

{
  "plugins": ["plugin1", "plugin2"],
  "rules": {
    "plugin1/exampleWarnRule": "warn",
    "plugin1/exampleErrorRule": "error",
    "plugin1/exampleOffRule": "off",
    "plugin2/exampleNumberWarnRule": 1,
    "plugin2/exampleNumberErrorRule": 2,
    "plugin2/exampleNumberOffRule": 0,
    "plugin2/exampleFullWarnRule": ["warn", {options: 'options'}],
    "plugin2/exampleFullErrorRule": ["error", {name: 'plugin'}],
    "plugin2/exampleFullNumberWarnRule": [1, {name: 2}],
    "plugin2/exampleFullNumberErrorRule": [2, {}]
  }
}

Built in rules

All the rules documentation is located inside /docs/rules

Rules:

  • package-json-properties: Includes options to restrict and blocklist properties on the package.json
  • root-files: Includes options to restrict and blocklist files on the root directory.

Release

To releasing new versions we are using standard-version.

Steps:

  1. When PRs/commits land to your master branch, select the Squash and Merge option.
  2. Add a title and body that follows the Conventional Commits Specification.
  3. Run $ git checkout master; git pull origin master
  4. Run $ npm run release
  5. Run $ git push --follow-tags origin master && npm publish

Tests

Unit Tests

There is a small set of tests implemented using Jest, to run them use: $ npm test

Integration Tests

To test adviser running with built-in rules, run $ npm run adviser on the directory __tests__/integration

External Plugins

To use plugins and rules you can install one of the plugins created by the same team that created adviser:

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.

License

MIT