pot-js
Version:
Process management module
42 lines (30 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.default = createCli;
var _createCommand = require('./createCommand');
var _createCommand2 = _interopRequireDefault(_createCommand);
var _yargs = require('yargs');
var _yargs2 = _interopRequireDefault(_yargs);
var _lodash = require('lodash');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function createCli(getYargs, commands) {
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
const args = function () {
if ((0, _lodash.isObject)(getYargs) && getYargs.name && getYargs.version) {
const pkg = getYargs;
return _yargs2.default.usage('$0 <command> [options]').demand(1, 'Please specify one of the commands!').alias('h', 'help').help().version(pkg.version).env(pkg.name.toUpperCase()).recommendCommands();
} else if ((0, _lodash.isFunction)(getYargs)) {
return getYargs(_yargs2.default);
}
}();
if (!Array.isArray(commands) && (0, _lodash.isObject)(commands)) {
commands = (0, _lodash.map)(commands);
}
if (Array.isArray(commands)) {
commands.forEach(localOptions => args.command((0, _createCommand2.default)(_extends({}, options, localOptions))));
}
return args.argv;
}