1 | #!/usr/bin/env node
|
2 | 'use strict';
|
3 |
|
4 |
|
5 |
|
6 | let main = function () {
|
7 | var ref = _asyncToGenerator(function* (options) {
|
8 | const raw = options.input;
|
9 | const flags = options.flags;
|
10 |
|
11 | const fromStdin = rules.fromStdin(raw, flags);
|
12 |
|
13 | const input = fromStdin ? [yield (0, _getStdin2.default)()] : yield (0, _.getMessages)((0, _lodash.pick)(flags, 'edit', 'from', 'to'));
|
14 |
|
15 | return Promise.all(input.map((() => {
|
16 | var ref = _asyncToGenerator(function* (commit) {
|
17 | const fmt = new _chalk2.default.constructor({ enabled: flags.color });
|
18 |
|
19 | const seed = {};
|
20 | if (flags.extends) {
|
21 | seed.extends = flags.extends.split(',');
|
22 | }
|
23 |
|
24 | const report = yield (0, _2.default)(commit, {
|
25 | preset: yield (0, _.getPreset)(flags.preset),
|
26 | configuration: yield (0, _.getConfiguration)('conventional-changelog-lint', {
|
27 | prefix: 'conventional-changelog-lint-config'
|
28 | }, seed)
|
29 | });
|
30 |
|
31 | const formatted = (0, _.format)(report, {
|
32 | color: flags.color,
|
33 | signs: [' ', '⚠', '✖'],
|
34 | colors: ['white', 'yellow', 'red']
|
35 | });
|
36 |
|
37 | if (!flags.quiet) {
|
38 | console.log(`${ fmt.grey('⧗') } input: ${ fmt.bold(commit.split('\n')[0]) }`);
|
39 | console.log(formatted.join('\n'));
|
40 | }
|
41 |
|
42 | if (report.errors.length > 0) {
|
43 | const error = new Error(formatted[formatted.length - 1]);
|
44 | error.type = _package2.default.name;
|
45 | throw error;
|
46 | }
|
47 |
|
48 | return console.log('');
|
49 | }),
|
50 | _this = this;
|
51 |
|
52 | return function (_x2) {
|
53 | return ref.apply(_this, arguments);
|
54 | };
|
55 | })()));
|
56 | });
|
57 |
|
58 | return function main(_x) {
|
59 | return ref.apply(this, arguments);
|
60 | };
|
61 | }();
|
62 |
|
63 |
|
64 |
|
65 |
|
66 | require('babel-polyfill');
|
67 |
|
68 | var _chalk = require('chalk');
|
69 |
|
70 | var _chalk2 = _interopRequireDefault(_chalk);
|
71 |
|
72 | var _meow = require('meow');
|
73 |
|
74 | var _meow2 = _interopRequireDefault(_meow);
|
75 |
|
76 | var _lodash = require('lodash');
|
77 |
|
78 | var _getStdin = require('get-stdin');
|
79 |
|
80 | var _getStdin2 = _interopRequireDefault(_getStdin);
|
81 |
|
82 | var _help = require('./help');
|
83 |
|
84 | var _help2 = _interopRequireDefault(_help);
|
85 |
|
86 | var _ = require('./');
|
87 |
|
88 | var _2 = _interopRequireDefault(_);
|
89 |
|
90 | var _package = require('../package');
|
91 |
|
92 | var _package2 = _interopRequireDefault(_package);
|
93 |
|
94 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
95 |
|
96 | function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { return step("next", value); }, function (err) { return step("throw", err); }); } } return step("next"); }); }; }
|
97 |
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 |
|
104 |
|
105 |
|
106 |
|
107 |
|
108 |
|
109 | const rules = {
|
110 | fromStdin: (input, flags) => input.length === 0 && flags.from === null && flags.to === null && !flags.edit
|
111 | };
|
112 |
|
113 | const configuration = {
|
114 |
|
115 | string: ['from', 'to', 'preset', 'extends'],
|
116 |
|
117 |
|
118 | boolean: ['edit', 'help', 'version', 'quiet', 'color'],
|
119 |
|
120 | alias: {
|
121 | c: 'color',
|
122 | e: 'edit',
|
123 | f: 'from',
|
124 | p: 'preset',
|
125 | t: 'to',
|
126 | q: 'quiet',
|
127 | h: 'help',
|
128 | v: 'version',
|
129 | x: 'extends'
|
130 | },
|
131 | description: {
|
132 | color: 'toggle formatted output',
|
133 | edit: 'read last commit message found in ./git/COMMIT_EDITMSG',
|
134 | extends: 'array of shareable configurations to extend',
|
135 | from: 'lower end of the commit range to lint; applies if edit=false',
|
136 | preset: 'conventional-changelog-preset to use for commit message parsing',
|
137 | to: 'upper end of the commit range to lint; applies if edit=false',
|
138 | quiet: 'toggle console output'
|
139 | },
|
140 |
|
141 | default: {
|
142 | color: true,
|
143 | edit: false,
|
144 | from: null,
|
145 | preset: 'angular',
|
146 | to: null,
|
147 | quiet: false
|
148 | },
|
149 |
|
150 | unknown(arg) {
|
151 | throw new Error(`unknown flags: ${ arg }`);
|
152 | }
|
153 | };
|
154 |
|
155 |
|
156 | const cli = (0, _meow2.default)({
|
157 | help: `[input] reads from stdin if --edit, --from, --to are omitted\n${ (0, _help2.default)(configuration) }`,
|
158 | description: `${ _package2.default.name }@${ _package2.default.version } - ${ _package2.default.description }`
|
159 | }, configuration);main(cli).catch(error => setTimeout(() => {
|
160 | if (error.type === _package2.default.name) {
|
161 | process.exit(1);
|
162 | }
|
163 | throw error;
|
164 | }));
|
165 |
|
166 |
|
167 | process.on('unhandledRejection', (reason, promise) => {
|
168 | console.log('Unhandled Rejection at: Promise ', promise, ' reason: ', reason);
|
169 | throw reason;
|
170 | }); |
\ | No newline at end of file |