grind-cli
Version:
CLI provider for Grind
49 lines (39 loc) • 3.97 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.InputOption = void 0;
function _isnil(val) { return val === null || typeof val === 'undefined'; }
const VALUE_NONE = 'none';
const VALUE_REQUIRED = 'required';
const VALUE_OPTIONAL = 'optional';
const cast = require('as-type');
class InputOption {
constructor(name, mode, help = null, value = null) {
this.name = null;
this.mode = null;
this.value = null;
this.help = null;
this.mode = mode;
this.help = help;
this.value = mode === VALUE_NONE ? cast.boolean(value) : value;
if (name.startsWith('--')) {
this.name = name.substring(2);
} else if (name.startsWith('-')) {
this.name = name.substring(1);
} else {
this.name = name;
}
}
toString() {
if (_isnil(this.value)) {
return this.this;
}
return `${this.this}=${this.value}`;
}
}
exports.InputOption = InputOption;
InputOption.VALUE_NONE = VALUE_NONE;
InputOption.VALUE_REQUIRED = VALUE_REQUIRED;
InputOption.VALUE_OPTIONAL = VALUE_OPTIONAL;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JbnB1dC9JbnB1dE9wdGlvbi5qcyJdLCJuYW1lcyI6WyJWQUxVRV9OT05FIiwiVkFMVUVfUkVRVUlSRUQiLCJWQUxVRV9PUFRJT05BTCIsImNhc3QiLCJyZXF1aXJlIiwiSW5wdXRPcHRpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtb2RlIiwiaGVscCIsInZhbHVlIiwiYm9vbGVhbiIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJ0b1N0cmluZyIsInRoaXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE1BQU1BLFVBQVUsR0FBRyxNQUFuQjtBQUNBLE1BQU1DLGNBQWMsR0FBRyxVQUF2QjtBQUNBLE1BQU1DLGNBQWMsR0FBRyxVQUF2Qjs7QUFFQSxNQUFNQyxJQUFJLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXBCOztBQUVPLE1BQU1DLFdBQU4sQ0FBa0I7QUFVeEJDLEVBQUFBLFdBQVcsQ0FBQ0MsSUFBRCxFQUFPQyxJQUFQLEVBQWFDLElBQUksR0FBRyxJQUFwQixFQUEwQkMsS0FBSyxHQUFHLElBQWxDLEVBQXdDO0FBQUEsU0FMbkRILElBS21ELEdBTDVDLElBSzRDO0FBQUEsU0FKbkRDLElBSW1ELEdBSjVDLElBSTRDO0FBQUEsU0FIbkRFLEtBR21ELEdBSDNDLElBRzJDO0FBQUEsU0FGbkRELElBRW1ELEdBRjVDLElBRTRDO0FBQ2xELFNBQUtELElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtDLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtDLEtBQUwsR0FBYUYsSUFBSSxLQUFLUixVQUFULEdBQXNCRyxJQUFJLENBQUNRLE9BQUwsQ0FBYUQsS0FBYixDQUF0QixHQUE0Q0EsS0FBekQ7O0FBRUEsUUFBSUgsSUFBSSxDQUFDSyxVQUFMLENBQWdCLElBQWhCLENBQUosRUFBMkI7QUFDMUIsV0FBS0wsSUFBTCxHQUFZQSxJQUFJLENBQUNNLFNBQUwsQ0FBZSxDQUFmLENBQVo7QUFDQSxLQUZELE1BRU8sSUFBSU4sSUFBSSxDQUFDSyxVQUFMLENBQWdCLEdBQWhCLENBQUosRUFBMEI7QUFDaEMsV0FBS0wsSUFBTCxHQUFZQSxJQUFJLENBQUNNLFNBQUwsQ0FBZSxDQUFmLENBQVo7QUFDQSxLQUZNLE1BRUE7QUFDTixXQUFLTixJQUFMLEdBQVlBLElBQVo7QUFDQTtBQUNEOztBQUVETyxFQUFBQSxRQUFRLEdBQUc7QUFDVixlQUFJLEtBQUtKLEtBQVQsR0FBc0I7QUFDckIsYUFBTyxLQUFLSyxJQUFaO0FBQ0E7O0FBRUQsV0FBUSxHQUFFLEtBQUtBLElBQUssSUFBRyxLQUFLTCxLQUFNLEVBQWxDO0FBQ0E7O0FBOUJ1Qjs7O0FBQVpMLFcsQ0FDTEwsVSxHQUFhQSxVO0FBRFJLLFcsQ0FFTEosYyxHQUFpQkEsYztBQUZaSSxXLENBR0xILGMsR0FBaUJBLGMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWQUxVRV9OT05FID0gJ25vbmUnXG5jb25zdCBWQUxVRV9SRVFVSVJFRCA9ICdyZXF1aXJlZCdcbmNvbnN0IFZBTFVFX09QVElPTkFMID0gJ29wdGlvbmFsJ1xuXG5jb25zdCBjYXN0ID0gcmVxdWlyZSgnYXMtdHlwZScpXG5cbmV4cG9ydCBjbGFzcyBJbnB1dE9wdGlvbiB7XG5cdHN0YXRpYyBWQUxVRV9OT05FID0gVkFMVUVfTk9ORVxuXHRzdGF0aWMgVkFMVUVfUkVRVUlSRUQgPSBWQUxVRV9SRVFVSVJFRFxuXHRzdGF0aWMgVkFMVUVfT1BUSU9OQUwgPSBWQUxVRV9PUFRJT05BTFxuXG5cdG5hbWUgPSBudWxsXG5cdG1vZGUgPSBudWxsXG5cdHZhbHVlID0gbnVsbFxuXHRoZWxwID0gbnVsbFxuXG5cdGNvbnN0cnVjdG9yKG5hbWUsIG1vZGUsIGhlbHAgPSBudWxsLCB2YWx1ZSA9IG51bGwpIHtcblx0XHR0aGlzLm1vZGUgPSBtb2RlXG5cdFx0dGhpcy5oZWxwID0gaGVscFxuXHRcdHRoaXMudmFsdWUgPSBtb2RlID09PSBWQUxVRV9OT05FID8gY2FzdC5ib29sZWFuKHZhbHVlKSA6IHZhbHVlXG5cblx0XHRpZiAobmFtZS5zdGFydHNXaXRoKCctLScpKSB7XG5cdFx0XHR0aGlzLm5hbWUgPSBuYW1lLnN1YnN0cmluZygyKVxuXHRcdH0gZWxzZSBpZiAobmFtZS5zdGFydHNXaXRoKCctJykpIHtcblx0XHRcdHRoaXMubmFtZSA9IG5hbWUuc3Vic3RyaW5nKDEpXG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMubmFtZSA9IG5hbWVcblx0XHR9XG5cdH1cblxuXHR0b1N0cmluZygpIHtcblx0XHRpZiAodGhpcy52YWx1ZS5pc05pbCkge1xuXHRcdFx0cmV0dXJuIHRoaXMudGhpc1xuXHRcdH1cblxuXHRcdHJldHVybiBgJHt0aGlzLnRoaXN9PSR7dGhpcy52YWx1ZX1gXG5cdH1cbn1cbiJdfQ==