12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 'use strict';
- const
- CoaParam = require('./coaparam'),
- chalk = require('chalk');
- /**
- * Argument
- *
- * Unnamed entity. From command line arguments passed as list of unnamed values.
- *
- * @class Arg
- * @extends CoaParam
- */
- module.exports = class Arg extends CoaParam {
- /**
- * @constructs
- * @param {COA.Cmd} cmd - parent command
- */
- constructor(cmd) {
- super(cmd);
- this._cmd._args.push(this);
- }
- _saveVal(args, val) {
- this._val && (val = this._val(val));
- const name = this._name;
- this._arr
- ? (args[name] || (args[name] = [])).push(val)
- : (args[name] = val);
- return val;
- }
- _parse(arg, args) {
- return this._saveVal(args, arg);
- }
- _checkParsed(opts, args) {
- return !args.hasOwnProperty(this._name);
- }
- _usage() {
- const res = [];
- res.push(chalk.magentaBright(this._name.toUpperCase()), ' : ', this._title);
- this._req && res.push(' ', chalk.redBright('(required)'));
- return res.join('');
- }
- _requiredText() {
- return `Missing required argument:\n ${this._usage()}`;
- }
- };
|