UNPKG

1.66 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _yargs = require('yargs');
8
9var _yargs2 = _interopRequireDefault(_yargs);
10
11function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
13/**
14 * Parses the provided args.
15 *
16 * @param {string[]} args The args no parse.
17 *
18 * @returns {Object} The parsed args.
19 */
20function parseArgs(args) {
21 return _yargs2.default.usage('Usage: $0 [options]').options({
22 d: {
23 alias: 'directory',
24 default: '.',
25 describe: 'Run under given directory',
26 type: 'string'
27 },
28 l: {
29 alias: 'level',
30 coerce: arg => {
31 const parsed = Number.parseInt(arg, 10);
32 if (Number.isNaN(parsed)) {
33 throw new Error('Invalid argument: level must be a number');
34 }
35
36 return parsed;
37 },
38 describe: 'Practice level (epic mode only)',
39 type: 'number'
40 },
41 s: {
42 alias: 'silent',
43 default: false,
44 describe: 'Suppress play log',
45 type: 'boolean'
46 },
47 t: {
48 alias: 'time',
49 coerce: arg => {
50 const parsed = Number.parseFloat(arg);
51 if (Number.isNaN(parsed)) {
52 throw new Error('Invalid argument: time must be a number');
53 }
54
55 return parsed;
56 },
57 default: 0.6,
58 describe: 'Delay each turn by seconds',
59 type: 'number'
60 },
61 y: {
62 alias: 'yes',
63 default: false,
64 describe: 'Assume yes in non-destructive confirmation dialogs',
65 type: 'boolean'
66 }
67 }).version().help().strict().parse(args);
68}
69
70exports.default = parseArgs;
71module.exports = exports.default;
\No newline at end of file