2021-06-12 00:40:56 -05:00

34 lines
711 B
JavaScript

const parseArgs = require('minimist');
const { InvalidArgumentError } = require('../../errors');
class ArgsParser {
constructor(minimistOptions = ArgsParser.DEFAULT_OPTIONS, requiredArgs = []) {
this.options = minimistOptions;
this.required = requiredArgs;
}
parse(argv) {
const parsedArgs = parseArgs(argv, this.options);
this.validate(parsedArgs);
return parsedArgs;
}
validate(parsedArgs) {
this.required.forEach((arg) => {
if (!parsedArgs[arg]) {
throw new InvalidArgumentError(`--${arg} is required!`);
}
});
}
}
ArgsParser.DEFAULT_OPTIONS = {
boolean: ['display'],
default: {
display: false
}
};
module.exports = ArgsParser;