UNPKG

pot-js

Version:

Process management module

42 lines (30 loc) 1.54 kB
'use strict'; 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; }