UNPKG

1.88 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
8
9exports.default = configuration => {
10 const lines = Object.entries(configuration.description).map(entry => {
11 var _entry = _slicedToArray(entry, 2);
12
13 const name = _entry[0];
14 const desc = _entry[1];
15
16 const alias = Object.entries(configuration.alias).find(entry => entry[1] === name).map(entry => entry[0])[0];
17 const defaults = configuration.default[name];
18 return [[name, alias].filter(Boolean), desc, defaults].filter(Boolean);
19 });
20
21 const longest = lines.map(line => {
22 var _line = _slicedToArray(line, 1);
23
24 const flags = _line[0];
25
26 return flags.reduce((sum, flag) => sum + flag.length, 0);
27 }).sort(Number)[0];
28
29 return lines.map(line => {
30 var _line2 = _slicedToArray(line, 3);
31
32 const flags = _line2[0];
33 const desc = _line2[1];
34 const defaults = _line2[2];
35
36 const fs = flags.map(flag => flag.length > 1 ? `--${ flag }` : `-${ flag }`);
37 const ds = defaults ? `, defaults to: ${ defaults }` : '';
38 const length = flags.reduce((sum, flag) => sum + flag.length, 0);
39 return `${ fs.join(',') }${ ' '.repeat(4 + longest - length) }${ desc }${ ds }`;
40 }).join('\n');
41};
42
43module.exports = exports['default'];
\No newline at end of file