var parseARGS = (kvKeys) => { return exports.parse($ARGS, kvKeys); }; var parse = (args, kvKeys) => { var newArgs = []; var keyValueMap = {}; var keyFlagMap = {}; keyValueMap.vals = () => { var ret = []; for (var i = 0; i < arguments.length; i++) { var v = keyValueMap[arguments[i]]; if (v) { v.forEach((x) => { ret.push(x) } ); } } return ret; }; keyValueMap.val = () => { for (var i = 0; i < arguments.length; i++) { var v = keyValueMap[arguments[i]] && keyValueMap[arguments[i]][0]; if (v) { return v; } } return null; }; keyFlagMap.flg = () => { for (var i = 0; i < arguments.length; i++) { var v = keyFlagMap[arguments[i]]; if (v) { return true; } } return false; }; var kvKeyMap = {}; (kvKeys || []).forEach((k) => { kvKeyMap[k] = 1; }); for (var i = 0; i < args.length; i++) { var arg = args[i]; var key = null; if (arg.startsWith('--')) { key = arg.substring(2); } else if (arg.startsWith('-')) { key = arg.substring(1); if (key.length > 1) { for (var x = 0; x < key.length; x++) { var k = key.substring(x, 1); kvKeyMap[k] = 1; keyFlagMap[k] = 1; } continue; } } if ((key != null) && ((i + 1) < args.length) || kvKeyMap[key]) { if (kvKeyMap[key]) { keyFlagMap[key] = 1; } else { keyValueMap[key] = keyValueMap[key] || []; keyValueMap[key].push(args[++i]); } } else { newArgs.push(arg); } } return { args: newArgs, flags: keyFlagMap, values: keyValueMap }; }; var parseDefARGs = (kvKeys) => { var args = parseARGS(kvKeys); var newArgs = args.args; newArgs.flg = args.flags.flg; newArgs.val = args.values.val; newArgs.vals = args.values.vals; return newArgs; }; if (typeof exports == 'object') { exports.parse = parse; exports.parseARGS = parseARGS; exports.parseDefARGs = parseDefARGs; }