@plexus-interop/cli
Version:
Plexus Interop CLI tools
102 lines • 9.65 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var Option_1 = require("./Option");
var BaseCommand = /** @class */ (function () {
function BaseCommand() {
var _this = this;
this.usageExamples = function () { return " $ plexus " + _this.name() + " " + _this.optionsExampleArgs().join(' '); };
this.generalDescription = function () { return ''; };
this.options = function () { return []; };
this.optionArgs = function (optValues, separator, nameConverter) {
if (nameConverter === void 0) { nameConverter = function (k) { return k; }; }
return _this.options().reduce(function (seed, option) {
var value = optValues[option.longName];
if (!value) {
return seed;
}
var name = "--" + nameConverter(option.longName);
if (option.isFlag) {
return seed.concat("" + name);
}
else {
var optionArgs = !!separator ? ["" + name + separator + value] : [name, value];
return seed.concat(optionArgs);
}
}, []);
};
this.optionsExampleArgs = function () {
return _this.options()
.filter(function (o) { return o.exampleValue || o.isFlag; })
.reduce(function (seed, option) {
if (option.isFlag) {
return seed.concat("-" + option.shortName);
}
else {
return seed.concat(["-" + option.shortName, option.exampleValue]);
}
}, []);
};
}
BaseCommand.prototype.isVerbose = function (opts) {
return !!opts && !!opts.verbose && opts.verbose !== 'false';
};
BaseCommand.prototype.log = function (msg) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
console.log("[" + this.name() + "] " + msg, args);
};
BaseCommand.prototype.register = function (builder) {
var _this = this;
var commandBuilder = builder.command(this.name())
.description(this.generalDescription());
this.options().forEach(function (o) { return commandBuilder.option(Option_1.getFlags(o), o.description, o.defaultValue); });
commandBuilder = commandBuilder.action(function (opts) {
// need to do it manually :(
// https://github.com/tj/commander.js/issues/44
_this.log('Validating input args');
var errors = _this.validateRequiredOpts(_this.options(), opts);
if (errors.length > 0) {
_this.fail(errors.join('\n'));
}
_this.log('Starting execution');
if (opts.verbose === 'true') {
_this.log("Passed options: " + _this.optionValuesToString(opts));
}
_this.action(opts)
.then(function () { return _this.log('Completed successfully'); })
.catch(function (e) { return _this.fail(e); });
});
var examples = this.usageExamples();
if (examples) {
commandBuilder.on('--help', function () {
console.log('');
console.log(' Examples:');
console.log('');
console.log(examples);
console.log('');
});
}
};
BaseCommand.prototype.fail = function (error) {
this.log('Finished with error', error);
process.exit(1);
};
BaseCommand.prototype.optionValuesToString = function (opts) {
return this.options().reduce(function (seed, option) { return seed + " " + option.longName + "=" + opts[option.longName]; }, '');
};
BaseCommand.prototype.validateRequiredOpts = function (options, commanderOpts) {
if (options) {
return options
.filter(function (o) { return !!o.isRequired && !commanderOpts[o.longName]; })
.map(function (o) { return "'" + Option_1.getFlags(o) + "' option is required"; });
}
else {
return [];
}
};
return BaseCommand;
}());
exports.BaseCommand = BaseCommand;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvQmFzZUNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsbUNBQTRDO0FBRzVDO0lBQUE7UUFBQSxpQkFzR0M7UUFoR1Usa0JBQWEsR0FBRyxjQUFNLE9BQUEsZUFBYSxLQUFJLENBQUMsSUFBSSxFQUFFLFNBQUksS0FBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBRyxFQUFqRSxDQUFpRSxDQUFDO1FBRXhGLHVCQUFrQixHQUFHLGNBQU0sT0FBQSxFQUFFLEVBQUYsQ0FBRSxDQUFDO1FBRTlCLFlBQU8sR0FBbUIsY0FBTSxPQUFBLEVBQUUsRUFBRixDQUFFLENBQUM7UUFFbkMsZUFBVSxHQUFHLFVBQ2hCLFNBQWMsRUFDZCxTQUFrQixFQUNsQixhQUE2QztZQUE3Qyw4QkFBQSxFQUFBLDBCQUF1QyxDQUFDLElBQUksT0FBQSxDQUFDLEVBQUQsQ0FBQztZQUM3QyxPQUFPLEtBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQVcsVUFBQyxJQUFJLEVBQUUsTUFBTTtnQkFDaEQsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDUixPQUFPLElBQUksQ0FBQztpQkFDZjtnQkFDRCxJQUFNLElBQUksR0FBRyxPQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFHLENBQUM7Z0JBQ25ELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBRyxJQUFNLENBQUMsQ0FBQztpQkFDakM7cUJBQU07b0JBQ0gsSUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLElBQUksR0FBRyxTQUFTLEdB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
;