UNPKG

925 BJavaScriptView Raw
1"use strict";
2
3/*
4 Straight-forward node.js arguments parser
5 Author: eveningkid
6 License: Apache-2.0
7*/
8
9function Parse (argv) {
10 // Removing node/bin and called script name
11 argv = argv.slice(2);
12
13 // Returned object
14 var args = {};
15
16 var argName, argValue;
17
18 // For each argument
19 argv.forEach(function (arg, index) {
20 // Seperate argument, for a key/value return
21 arg = arg.split('=');
22
23 // Retrieve the argument name
24 argName = arg[0];
25
26 // Remove "--" or "-"
27 if (argName.indexOf('-') === 0) {
28 argName = argName.slice(argName.slice(0, 2).lastIndexOf('-') + 1);
29 }
30
31 // Associate defined value or initialize it to "true" state
32 argValue = (arg.length === 2)
33 ? parseFloat(arg[1]).toString() === arg[1] // check if argument is valid number
34 ? +arg[1]
35 : arg[1]
36 : true;
37
38 // Finally add the argument to the args set
39 args[argName] = argValue;
40 });
41
42 return args;
43}
44
45module.exports = Parse;