1 | 'use strict';
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | const ARGUMENT_SEPARATION_REGEX = /([^=\s]+)=?([^\s]*)/;
|
10 |
|
11 | function Parse(argv) {
|
12 |
|
13 | argv = argv.slice(2);
|
14 |
|
15 | const parsedArgs = {};
|
16 | let argName, argValue;
|
17 |
|
18 | argv.forEach(function (arg) {
|
19 |
|
20 | arg = arg.match(ARGUMENT_SEPARATION_REGEX);
|
21 | arg.splice(0, 1);
|
22 |
|
23 |
|
24 | argName = arg[0];
|
25 |
|
26 |
|
27 | if (argName.indexOf('-') === 0) {
|
28 | argName = argName.slice(argName.slice(0, 2).lastIndexOf('-') + 1);
|
29 | }
|
30 |
|
31 |
|
32 | argValue =
|
33 | arg[1] !== ''
|
34 | ? parseFloat(arg[1]).toString() === arg[1]
|
35 | ? +arg[1]
|
36 | : arg[1]
|
37 | : true;
|
38 |
|
39 | parsedArgs[argName] = argValue;
|
40 | });
|
41 |
|
42 | return parsedArgs;
|
43 | }
|
44 |
|
45 | module.exports = Parse;
|