commitiquette
Version:
Plugin for commitizen to use commitLint config
55 lines (54 loc) • 2.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.bodyMaker = exports.transformerFactory = exports.filterFactory = exports.validatorFactory = void 0;
var tslib_1 = require("tslib");
var validators_1 = require("../validators");
var utils_1 = require("../utils");
var filters_1 = require("../filters");
function validatorFactory(rules) {
return function (value) {
return (0, validators_1.validate)([
{
value: value,
rule: rules['body-max-length'],
validator: validators_1.maxLengthValidator,
message: function (length) { return "Body maximum length of " + length + " has been exceeded"; },
},
{
value: value,
rule: rules['body-min-length'],
validator: validators_1.minLengthValidator,
message: function (length) { return "Body minimum length of " + length + " has not been met"; },
},
]);
};
}
exports.validatorFactory = validatorFactory;
function filterFactory(rules) {
return function (value) {
return (0, utils_1.pipeWith)(value, function (v) { return (0, filters_1.maxLineLengthFilter)(v, rules['body-max-line-length']); }, function (v) { return (0, filters_1.leadingBlankFilter)(v, rules['body-leading-blank']); }, function (v) { return v.replace(/\\n/g, '\n'); });
};
}
exports.filterFactory = filterFactory;
function transformerFactory(rules) {
var maxLength = (0, utils_1.valueFromRule)(rules['body-max-length']);
var maxLenTransformer = maxLength ? (0, utils_1.maxLengthTransformerFactory)(maxLength) : function (value) { return value; };
return function (value) {
return (0, utils_1.pipeWith)(value, function (v) { return v.replace(/\\n/g, '\n'); }, function (v) { return maxLenTransformer(v); });
};
}
exports.transformerFactory = transformerFactory;
function bodyMaker(questions, rules) {
var bodyQuestions = [
{
type: 'input',
name: 'body',
message: 'Provide a longer description of the change: (press enter to skip, \\n for newline)\n',
validate: validatorFactory(rules),
filter: filterFactory(rules),
transformer: transformerFactory(rules),
},
];
return (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], questions, true), bodyQuestions, true);
}
exports.bodyMaker = bodyMaker;