59 lines
1 KiB
JavaScript
59 lines
1 KiB
JavaScript
"use strict";
|
|
|
|
var Minimist = require('minimist');
|
|
|
|
class Input {
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @param object process
|
|
*/
|
|
constructor(process) {
|
|
this.args = Minimist(process.argv.slice(2))
|
|
this.node = process.argv[0]
|
|
this.script = process.argv[1]
|
|
}
|
|
|
|
/**
|
|
* Return the value of the given name argument.
|
|
*
|
|
* @param string name
|
|
* @param mixed default
|
|
*
|
|
* @return mixed
|
|
*/
|
|
get(name, defaultValue) {
|
|
if (this.has(name)) {
|
|
return this.args[name]
|
|
}
|
|
|
|
if (defaultValue !== undefined) {
|
|
return defaultValue
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Check the given argument name exists.
|
|
*
|
|
* @param string name
|
|
*
|
|
* @return boolean
|
|
*/
|
|
has(name) {
|
|
return this.args.hasOwnProperty(name)
|
|
}
|
|
|
|
/**
|
|
* Return if args is empty.
|
|
*
|
|
* @return boolean
|
|
*/
|
|
empty() {
|
|
return Object.keys(this.args).length === 1
|
|
}
|
|
}
|
|
|
|
module.exports = Input
|