UNPKG

1.91 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6const chalk_1 = __importDefault(require("chalk"));
7const fillMissingArgs = (el) => ({ ...el, args: el.args || '' });
8const buildRow = ({ name, short, args, desc }) => `${chalk_1.default.yellow('--' + name)} [${chalk_1.default.magenta('-' + short)}] ${args} ${desc}`;
9const equalPad = (param) => (line, index, arr) => ({
10 ...line,
11 [param]: line[param].padEnd(Math.max.apply(null, arr.map(el => el[param].length)))
12});
13const a = [
14 {
15 name: 'help',
16 short: 'h',
17 desc: 'shows this message'
18 },
19 {
20 name: 'version',
21 short: 'v',
22 desc: 'shows version'
23 },
24 { name: 'dataPath',
25 short: 'd',
26 args: '<path>',
27 desc: 'reads data from another folder'
28 },
29 { name: 'getPath',
30 short: 'g',
31 desc: 'shows default data folder path'
32 },
33 {
34 name: 'runningWithSudoIsDangerous',
35 short: 'runningWithSudoIsDangerous',
36 desc: '',
37 hidden: true
38 }
39];
40function getArgs() {
41 const args = require('minimist')(process.argv.slice(2));
42 let newArgs = {};
43 a.forEach(arg => {
44 if (args[arg.name] != null)
45 newArgs[arg.name] = args[arg.name];
46 if (args[arg.short] != null)
47 newArgs[arg.name] = args[arg.short];
48 if (newArgs[arg.name] != null && arg.args && typeof newArgs[arg.name] !== 'string')
49 delete newArgs[arg.name];
50 });
51 return newArgs;
52}
53exports.getArgs = getArgs;
54function getHelp() {
55 return a
56 .filter(a => !a.hidden)
57 .map(equalPad('name'))
58 .map(fillMissingArgs)
59 .map(equalPad('args'))
60 .map(buildRow)
61 .join('\n ');
62}
63exports.getHelp = getHelp;