1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.flagUsages = exports.flagUsage = void 0;
|
4 | const tslib_1 = require("tslib");
|
5 | const deps_1 = tslib_1.__importDefault(require("./deps"));
|
6 |
|
7 | const m = deps_1.default()
|
8 | .add('chalk', () => require('chalk'))
|
9 |
|
10 | .add('util', () => require('./util'));
|
11 | function flagUsage(flag, options = {}) {
|
12 | const label = [];
|
13 | if (flag.helpLabel) {
|
14 | label.push(flag.helpLabel);
|
15 | }
|
16 | else {
|
17 | if (flag.char)
|
18 | label.push(`-${flag.char}`);
|
19 | if (flag.name)
|
20 | label.push(` --${flag.name}`);
|
21 | }
|
22 | const usage = flag.type === 'option' ? ` ${flag.name.toUpperCase()}` : '';
|
23 | let description = flag.description || '';
|
24 | if (options.displayRequired && flag.required)
|
25 | description = `(required) ${description}`;
|
26 | description = description ? m.chalk.dim(description) : undefined;
|
27 | return [` ${label.join(',').trim()}${usage}`, description];
|
28 | }
|
29 | exports.flagUsage = flagUsage;
|
30 | function flagUsages(flags, options = {}) {
|
31 | if (flags.length === 0)
|
32 | return [];
|
33 | const { sortBy } = m.util;
|
34 | return sortBy(flags, f => [f.char ? -1 : 1, f.char, f.name])
|
35 | .map(f => flagUsage(f, options));
|
36 | }
|
37 | exports.flagUsages = flagUsages;
|