UNPKG

datakit

Version:

Simple JavaScript toolkit for data transform across JSON, CSV and YAML.

63 lines 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pullOptions = exports.consumeOptionalArg = void 0; // // Consumes an argument and returns it's value. // function consumeOptionalArg(argv, startingIndex, option) { if (argv.length < startingIndex + 1) { return undefined; // No more arguments. } function throwError(argument, exampleValue) { throw new Error("Bad argument. Expected something like: \"".concat(argument).concat(exampleValue, "\"")); } for (var _i = 0, _a = option.names; _i < _a.length; _i++) { var optionName = _a[_i]; for (var _b = 0, _c = ["-".concat(optionName), "--".concat(optionName)]; _b < _c.length; _b++) { var optionVariant = _c[_b]; if (argv[startingIndex] == optionVariant) { var actualArg = argv.splice(startingIndex, 1)[0]; if (argv.length < startingIndex + 1) { throwError(actualArg + " ", option.example); } var argValue = argv.splice(startingIndex, 1)[0]; return argValue; } else if (argv[startingIndex].startsWith("".concat(optionVariant, "="))) { var actualArg = argv.splice(startingIndex, 1)[0]; return actualArg.substring(optionVariant.length + 1); } } } return undefined; } exports.consumeOptionalArg = consumeOptionalArg; // // Pulls options from the set of arguments. // function pullOptions(options, argv) { var output = {}; for (var _i = 0, options_1 = options; _i < options_1.length; _i++) { var option = options_1[_i]; var value = findOption(argv, option); if (value) { output[option.names[0]] = value; continue; } } return output; } exports.pullOptions = pullOptions; // // Find the value for an option in the list of arguments. // function findOption(argv, option) { for (var argIndex = 0; argIndex < argv.length; ++argIndex) { var value = consumeOptionalArg(argv, argIndex, option); if (value !== undefined) { return value; } } return undefined; } //# sourceMappingURL=args.js.map