commitlint-config-czx

commitlint sharable configuration files

Usage no npm install needed!

<script type="module">
  import commitlintConfigCzx from 'https://cdn.skypack.dev/commitlint-config-czx';
</script>

README

commitlint-config-cz

npm Build Status Build status Coverage Status

commitlint sharable configuration files, which also includes modules & API for config conversion.

If .cz-config.js that is for @whizark/cz-cli or cz-customizable exists in your package root directory, its {types,scopes,scopeOverrides} are merged with rules.{type-enum,scope-enum}.

Installation

Install commitlint-config-cz as a local dependency.

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

Usage

Extend commitlint-config-cz in commitlint.config.js.

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

Modules & API

There are some modules and API to convert cz-customizable's config into commitlint's config.

config.js

Gets the commitlint config from the .cz-config.js in the package root.

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

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

Gets the commitlint config from a cz-customizable config.

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 completely REMOVED, if its value is an empty array.

cz-config.js

Gets the .cz-config.js as an object in the package root.

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

get(path: string): Object

Gets the cz-customizable config 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 the .cz-config.js in the 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 the .cz-config.js in the package root.

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

get(czConfig: Object): string[]

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

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

const types = getTypes(czConfig);