UNPKG

1.36 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.flagUsages = exports.flagUsage = void 0;
4const tslib_1 = require("tslib");
5const deps_1 = tslib_1.__importDefault(require("./deps"));
6// eslint-disable-next-line new-cap
7const m = deps_1.default()
8 .add('chalk', () => require('chalk'))
9 // eslint-disable-next-line node/no-missing-require
10 .add('util', () => require('./util'));
11function 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}
29exports.flagUsage = flagUsage;
30function 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}
37exports.flagUsages = flagUsages;