UNPKG

@plexus-interop/cli

Version:

Plexus Interop CLI tools

102 lines 9.65 kB
"use strict"; 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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