Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

⚙️ commitlint sharable configuration, automatically converts/merges your cz-customizable (commitizen) config.

License

Notifications You must be signed in to change notification settings

whizark/commitlint-config-cz

Repository files navigation

commitlint-config-cz

npm Build Status Build status Coverage Status

commitlint sharable configuration files for cz-customizable (customizable Commitizen adapter for conventional commits and conventional changelog).

You can now consistently manage your commit types/scopes for cz-customizable and commitlint in one place.

commitlint-config-cz merges {types,scopes,scopeOverrides} (cz-customizable config) with rules.{type-enum,scope-enum} (commitlint config) and includes some modules and API for config conversion.

Supported Config

commitlint-config-cz use only one config in the following order of precedence.

  1. config.cz-customizable.config in package.json.
  2. .cz-config.js in your package root (supported by cz-customizable).

Installation

  1. Install & setup (commitizen &) cz-customizable.

  2. Install commitlint.

  3. Install commitlint-config-cz as a local dependency.

    npm install commitlint-config-cz --save-dev

Usage

Extend your commitlint config by cz in commitlint.config.js.

module.exports = {
    extends: [
        'other-config',
        'cz'
    ]
};

Modules & API

commitlint-config-cz includes some modules and API for config conversion.

config.js

Gets the converted commitlint config from the cz-customizable config which is defined in package.json or .cz-config.js in your package root.

const config = require('commitlint-config-cz/lib/config')();

get(pathOrCzConfig: string | Object, defaultConfig?: Object): Object

Gets the commitlint config from a path to config file.

const getConfig = require('commitlint-config-cz/lib/config').get;

// From a path.
const config = getConfig('path/to/.cz-config.js');
const getConfig = require('commitlint-config-cz/lib/config').get;
const czConfig  = { /* `cz-customizable` config object. */ };

// From a `cz-customizable` config object.
const config = getConfig(czConfig);
const getConfig     = require('commitlint-config-cz/lib/config').get;
const czConfig      = { /* `cz-customizable` config object. */ };
const defaultConfig = {  // The default `commitlint` config.
    rules: {
        'scope-enum': [  // rule
            2,           // [1] level
            'always',    // [2] applicability
            [],          // [3] value
        ],
        'type-enum' : [  // rule
            2,           // [1] level
            'always',    // [2] applicability
            [],          // [3] value
        ],
    },
};

// Converts and merges the `cz-customizable` config with the default `commitlint` config.
const config = getConfig(czConfig, defaultConfig);
  1. If cz-customizable config has scopes, scopeOverrides or types field, the value(s) [3] of the default commitlint config is/are REPLACED by converted value(s).
    Level [1] and applicability [2] remain as they are.
  2. scope-enum rule or/and type-enum rule is/are REMOVED, if its value is an empty array.

cz-config.js

Gets the cz-customizable config as an object from package.json or .cz-config.js in your package root.

const czConfig = require('commitlint-config-cz/lib/cz-config')();

get(path: string): Object

Gets the cz-customizable config as an object from a path.

const getCzConfig = require('commitlint-config-cz/lib/cz-config').get;

const czConfig = getCzConfig('path/to/.cz-config.js');

scopes.js

Gets the value for scope-enum rule from package.json or .cz-config.js in your package root.

const scopes = require('commitlint-config-cz/lib/scopes')();

get(czConfig: Object): string[]

Gets the value for scope-enum rule from a cz-customizable config object.

const getScopes = require('commitlint-config-cz/lib/scopes').get;
const czConfig  = { /* cz-customizable config object. */ };

const scopes = getScopes(czConfig);

types.js

Gets the value for type-enum rule from package.json or .cz-config.js in your package root.

const types = require('commitlint-config-cz/lib/types')();

get(czConfig: Object): string[]

Gets the value for type-enum rule from package.json or cz-customizable config object.

const getTypes = require('commitlint-config-cz/lib/types').get;
const czConfig = { /* `cz-customizable` config object. */ };

const types = getTypes(czConfig);

About

⚙️ commitlint sharable configuration, automatically converts/merges your cz-customizable (commitizen) config.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Morty Proxy This is a proxified and sanitized view of the page, visit original site.