| 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()}`;    }};
 |