grind-cli
Version:
CLI provider for Grind
43 lines (32 loc) • 4.22 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Input = void 0;
var _InputArgument = require("./InputArgument.js");
var _InputOption = require("./InputOption.js");
class Input {
constructor(rawArgs) {
this.arguments = [];
this.options = [];
const length = rawArgs.length;
for (let i = 0; i < length; i++) {
const argument = rawArgs[i];
if (!argument.startsWith('-')) {
this.arguments.push(new _InputArgument.InputArgument(new String(i), _InputArgument.InputArgument.VALUE_OPTIONAL, null, argument));
continue;
}
const components = argument.split(/=/);
if (components.length === 1) {
this.options.push(new _InputOption.InputOption(components[0], _InputOption.InputOption.VALUE_NONE, null, true));
} else {
this.options.push(new _InputOption.InputOption(components[0], _InputOption.InputOption.VALUE_OPTIONAL, null, components[1]));
}
}
}
hasParameterOption(name) {
return this.options.findIndex(option => option.name === name) >= 0;
}
}
exports.Input = Input;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JbnB1dC9JbnB1dC5qcyJdLCJuYW1lcyI6WyJJbnB1dCIsImNvbnN0cnVjdG9yIiwicmF3QXJncyIsImFyZ3VtZW50cyIsIm9wdGlvbnMiLCJsZW5ndGgiLCJpIiwiYXJndW1lbnQiLCJzdGFydHNXaXRoIiwicHVzaCIsIklucHV0QXJndW1lbnQiLCJTdHJpbmciLCJWQUxVRV9PUFRJT05BTCIsImNvbXBvbmVudHMiLCJzcGxpdCIsIklucHV0T3B0aW9uIiwiVkFMVUVfTk9ORSIsImhhc1BhcmFtZXRlck9wdGlvbiIsIm5hbWUiLCJmaW5kSW5kZXgiLCJvcHRpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR08sTUFBTUEsS0FBTixDQUFZO0FBSWxCQyxFQUFBQSxXQUFXLENBQUNDLE9BQUQsRUFBVTtBQUFBLFNBSHJCQyxTQUdxQixHQUhULEVBR1M7QUFBQSxTQUZyQkMsT0FFcUIsR0FGWCxFQUVXO0FBQ3BCLFVBQU1DLE1BQU0sR0FBR0gsT0FBTyxDQUFDRyxNQUF2Qjs7QUFFQSxTQUFLLElBQUlDLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdELE1BQXBCLEVBQTRCQyxDQUFDLEVBQTdCLEVBQWlDO0FBQ2hDLFlBQU1DLFFBQVEsR0FBR0wsT0FBTyxDQUFDSSxDQUFELENBQXhCOztBQUVBLFVBQUksQ0FBQ0MsUUFBUSxDQUFDQyxVQUFULENBQW9CLEdBQXBCLENBQUwsRUFBK0I7QUFDOUIsYUFBS0wsU0FBTCxDQUFlTSxJQUFmLENBQ0MsSUFBSUMsNEJBQUosQ0FBa0IsSUFBSUMsTUFBSixDQUFXTCxDQUFYLENBQWxCLEVBQWlDSSw2QkFBY0UsY0FBL0MsRUFBK0QsSUFBL0QsRUFBcUVMLFFBQXJFLENBREQ7QUFHQTtBQUNBOztBQUVELFlBQU1NLFVBQVUsR0FBR04sUUFBUSxDQUFDTyxLQUFULENBQWUsR0FBZixDQUFuQjs7QUFFQSxVQUFJRCxVQUFVLENBQUNSLE1BQVgsS0FBc0IsQ0FBMUIsRUFBNkI7QUFDNUIsYUFBS0QsT0FBTCxDQUFhSyxJQUFiLENBQ0MsSUFBSU0sd0JBQUosQ0FBZ0JGLFVBQVUsQ0FBQyxDQUFELENBQTFCLEVBQStCRSx5QkFBWUMsVUFBM0MsRUFBdUQsSUFBdkQsRUFBNkQsSUFBN0QsQ0FERDtBQUdBLE9BSkQsTUFJTztBQUNOLGFBQUtaLE9BQUwsQ0FBYUssSUFBYixDQUNDLElBQUlNLHdCQUFKLENBQWdCRixVQUFVLENBQUMsQ0FBRCxDQUExQixFQUErQkUseUJBQVlILGNBQTNDLEVBQTJELElBQTNELEVBQWlFQyxVQUFVLENBQUMsQ0FBRCxDQUEzRSxDQUREO0FBR0E7QUFDRDtBQUNEOztBQUVESSxFQUFBQSxrQkFBa0IsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3hCLFdBQU8sS0FBS2QsT0FBTCxDQUFhZSxTQUFiLENBQXVCQyxNQUFNLElBQUlBLE1BQU0sQ0FBQ0YsSUFBUCxLQUFnQkEsSUFBakQsS0FBMEQsQ0FBakU7QUFDQTs7QUFqQ2lCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuL0lucHV0QXJndW1lbnQnXG5pbXBvcnQgJy4vSW5wdXRPcHRpb24nXG5cbmV4cG9ydCBjbGFzcyBJbnB1dCB7XG5cdGFyZ3VtZW50cyA9IFtdXG5cdG9wdGlvbnMgPSBbXVxuXG5cdGNvbnN0cnVjdG9yKHJhd0FyZ3MpIHtcblx0XHRjb25zdCBsZW5ndGggPSByYXdBcmdzLmxlbmd0aFxuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgYXJndW1lbnQgPSByYXdBcmdzW2ldXG5cblx0XHRcdGlmICghYXJndW1lbnQuc3RhcnRzV2l0aCgnLScpKSB7XG5cdFx0XHRcdHRoaXMuYXJndW1lbnRzLnB1c2goXG5cdFx0XHRcdFx0bmV3IElucHV0QXJndW1lbnQobmV3IFN0cmluZyhpKSwgSW5wdXRBcmd1bWVudC5WQUxVRV9PUFRJT05BTCwgbnVsbCwgYXJndW1lbnQpLFxuXHRcdFx0XHQpXG5cdFx0XHRcdGNvbnRpbnVlXG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGNvbXBvbmVudHMgPSBhcmd1bWVudC5zcGxpdCgvPS8pXG5cblx0XHRcdGlmIChjb21wb25lbnRzLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHR0aGlzLm9wdGlvbnMucHVzaChcblx0XHRcdFx0XHRuZXcgSW5wdXRPcHRpb24oY29tcG9uZW50c1swXSwgSW5wdXRPcHRpb24uVkFMVUVfTk9ORSwgbnVsbCwgdHJ1ZSksXG5cdFx0XHRcdClcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMub3B0aW9ucy5wdXNoKFxuXHRcdFx0XHRcdG5ldyBJbnB1dE9wdGlvbihjb21wb25lbnRzWzBdLCBJbnB1dE9wdGlvbi5WQUxVRV9PUFRJT05BTCwgbnVsbCwgY29tcG9uZW50c1sxXSksXG5cdFx0XHRcdClcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRoYXNQYXJhbWV0ZXJPcHRpb24obmFtZSkge1xuXHRcdHJldHVybiB0aGlzLm9wdGlvbnMuZmluZEluZGV4KG9wdGlvbiA9PiBvcHRpb24ubmFtZSA9PT0gbmFtZSkgPj0gMFxuXHR9XG59XG4iXX0=
;