boll
Get started
Documentation
GitHub
Get started
Documentation
GitHub
  • Documentation
  • Configuration
  • Running boll
  • Disabling rules
  • Rules
  • Advanced configuration: Custom rules

Configuration

Boll is configured by way of the .boll.config.js file in the root of a given package.

Each boll configuration must load rules to be run across the repository. It may either extend an existing configuration or fabricate a new configuration.

Creating a new configuration

A configuration is a list of RuleSet objects. Each RuleSet must define a fileLocator and a set of checks to run against all matched files.

The following example loads a specific TypeScript check from the TypeScript package, registers it, then creates a ruleset to run that check only.

"use strict";
const { RuleRegistryInstance, TypescriptSourceGlob } = require("@boll/core");
const { SrcDetector } = require("@boll/rules-typescript");

RuleRegistryInstance.register("SrcDetector", () => new SrcDetector());

module.exports = {
  ruleSets: [
    {
      fileLocator: new TypescriptSourceGlob(),
      checks: [{ rule: "SrcDetector" }]
    }
  ]
};

@boll/core provides several fileLocator implementations (see FileGlob) out of the box.

Learn how to create rules

Extending an existing configuration

To extend an configuration, install the plugin and export an object with an extends key.

"use strict";

module.exports = {
  extends: "boll:recommended"
};

You may also extend from multiple plugins.

"use strict";

module.exports = {
  extends: ["boll:recommended", "plugin:check-readme"]
};

Creating a plugin

A plugin is a configuration that can be extended from to provide additional rules. To create a plugin, create a module which exports a bootstrap function. The plugin's configuration name also has to begin with the prefix plugin:.

"use strict";
const { addRule, WorkspacesGlob, ConfigRegistryInstance } = require("@boll/core");
// a custom created rule to check readme file
const { ensureReadMe } = require("./rules/readme");

const readMeConfig = {
  name: "plugin:check-readme",
  ruleSets: [
    {
      fileLocator: new WorkspacesGlob(),
      checks: {
        file: [{ rule: "ensureReadMe" }]
      }
    }
  ]
};

function bootstrap() {
  addRule(ensureReadme);
  ConfigRegistryInstance.register(readMeConfig);
}

module.exports = {
  bootstrap
};
Last Updated: 12/10/25, 8:50 PM
Prev
Documentation
Next
Running boll