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.
commitlint-config-cz use only one config in the following order of precedence.
config.cz-customizable.config
inpackage.json
..cz-config.js
in your package root (supported by cz-customizable).
-
Install
commitlint-config-cz
as a local dependency.npm install commitlint-config-cz --save-dev
Extend your commitlint config by cz
in commitlint.config.js
.
module.exports = {
extends: [
'other-config',
'cz'
]
};
commitlint-config-cz includes some modules and API for config conversion.
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')();
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);
- If cz-customizable config has
scopes
,scopeOverrides
ortypes
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. scope-enum
rule or/andtype-enum
rule is/are REMOVED, if its value is an empty array.
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')();
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');
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')();
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);
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')();
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);