1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.format = exports.getPreset = exports.getMessages = exports.getConfiguration = undefined;
|
7 |
|
8 | var _regenerator = require('babel-runtime/regenerator');
|
9 |
|
10 | var _regenerator2 = _interopRequireDefault(_regenerator);
|
11 |
|
12 | var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
|
13 |
|
14 | var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
|
15 |
|
16 | var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
|
17 |
|
18 | var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
|
19 |
|
20 | var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
|
21 |
|
22 | var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
|
23 |
|
24 | var _conventionalCommitsParser = require('conventional-commits-parser');
|
25 |
|
26 | var _lodash = require('lodash');
|
27 |
|
28 | var _getConfiguration2 = require('./library/get-configuration');
|
29 |
|
30 | var _getConfiguration3 = _interopRequireDefault(_getConfiguration2);
|
31 |
|
32 | var _getMessages2 = require('./library/get-messages');
|
33 |
|
34 | var _getMessages3 = _interopRequireDefault(_getMessages2);
|
35 |
|
36 | var _getPreset2 = require('./library/get-preset');
|
37 |
|
38 | var _getPreset3 = _interopRequireDefault(_getPreset2);
|
39 |
|
40 | var _format2 = require('./library/format');
|
41 |
|
42 | var _format3 = _interopRequireDefault(_format2);
|
43 |
|
44 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
45 |
|
46 | exports.getConfiguration = _getConfiguration3.default;
|
47 | exports.getMessages = _getMessages3.default;
|
48 | exports.getPreset = _getPreset3.default;
|
49 | exports.format = _format3.default;
|
50 |
|
51 | exports.default = function () {
|
52 | var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(message) {
|
53 | var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
54 |
|
55 | var parserOptions, _options$configuratio, rules, wildcards, parsed, bails, results, errors, warnings, valid;
|
56 |
|
57 | return _regenerator2.default.wrap(function _callee$(_context) {
|
58 | while (1) {
|
59 | switch (_context.prev = _context.next) {
|
60 | case 0:
|
61 | parserOptions = options.preset.parserOpts, _options$configuratio = options.configuration, rules = _options$configuratio.rules, wildcards = _options$configuratio.wildcards;
|
62 |
|
63 |
|
64 |
|
65 | parsed = (0, _lodash.merge)({ raw: message }, (0, _conventionalCommitsParser.sync)(message, parserOptions));
|
66 |
|
67 |
|
68 |
|
69 | bails = Object.entries(wildcards).filter(function (entry) {
|
70 | var _entry = (0, _slicedToArray3.default)(entry, 2),
|
71 | pattern = _entry[1];
|
72 |
|
73 | return Array.isArray(pattern);
|
74 | }).filter(function (entry) {
|
75 | var _entry2 = (0, _slicedToArray3.default)(entry, 2),
|
76 | pattern = _entry2[1];
|
77 |
|
78 | var expression = new (Function.prototype.bind.apply(RegExp, [null].concat((0, _toConsumableArray3.default)(pattern))))();
|
79 | return parsed.header.match(expression);
|
80 | }).map(function (entry) {
|
81 | return entry[0];
|
82 | });
|
83 |
|
84 |
|
85 |
|
86 | if (!(bails.length > 0)) {
|
87 | _context.next = 5;
|
88 | break;
|
89 | }
|
90 |
|
91 | return _context.abrupt('return', {
|
92 | valid: true,
|
93 | wildcards: bails,
|
94 | rules: [],
|
95 | warnings: [],
|
96 | errors: []
|
97 | });
|
98 |
|
99 | case 5:
|
100 |
|
101 |
|
102 | results = Object.entries(rules).filter(function (entry) {
|
103 | var _entry3 = (0, _slicedToArray3.default)(entry, 2),
|
104 | _entry3$ = (0, _slicedToArray3.default)(_entry3[1], 1),
|
105 | level = _entry3$[0];
|
106 |
|
107 | return level > 0;
|
108 | }).map(function (entry) {
|
109 | var _entry4 = (0, _slicedToArray3.default)(entry, 2),
|
110 | name = _entry4[0],
|
111 | config = _entry4[1];
|
112 |
|
113 | var _config = (0, _slicedToArray3.default)(config, 3),
|
114 | level = _config[0],
|
115 | when = _config[1],
|
116 | value = _config[2];
|
117 |
|
118 |
|
119 |
|
120 |
|
121 | if (level === 0) {
|
122 | return null;
|
123 | }
|
124 |
|
125 | var rule = require(`./rules/${name}`);
|
126 |
|
127 | var _rule = rule(parsed, when, value),
|
128 | _rule2 = (0, _slicedToArray3.default)(_rule, 2),
|
129 | valid = _rule2[0],
|
130 | message = _rule2[1];
|
131 |
|
132 | return {
|
133 | level,
|
134 | valid,
|
135 | name,
|
136 | message
|
137 | };
|
138 | }).filter(Boolean);
|
139 | errors = results.filter(function (result) {
|
140 | return result.level > 1 && !result.valid;
|
141 | });
|
142 | warnings = results.filter(function (result) {
|
143 | return result.level < 2 && !result.valid;
|
144 | });
|
145 | valid = errors.length === 0;
|
146 | return _context.abrupt('return', {
|
147 | valid,
|
148 | errors,
|
149 | warnings
|
150 | });
|
151 |
|
152 | case 10:
|
153 | case 'end':
|
154 | return _context.stop();
|
155 | }
|
156 | }
|
157 | }, _callee, undefined);
|
158 | }));
|
159 |
|
160 | return function (_x) {
|
161 | return _ref.apply(this, arguments);
|
162 | };
|
163 | }(); |
\ | No newline at end of file |