Demo for query storing
Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/coa/lib/arg.js b/node_modules/coa/lib/arg.js
new file mode 100644
index 0000000..e17b83e
--- /dev/null
+++ b/node_modules/coa/lib/arg.js
@@ -0,0 +1,58 @@
+'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()}`;
+ }
+};