@dojo/cli
Version:
33 lines • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const chalk_1 = require("chalk");
const command_1 = require("./command");
function isRequiredOption(options) {
return !!(options.demand || options.demandOption || options.require || options.requiresArg || options.required);
}
exports.isRequiredOption = isRequiredOption;
function createOptionValidator(groupMap) {
return (argv) => {
if (argv.h || argv.help || argv._.length === 0) {
return true;
}
const groupName = argv._[0];
const commandName = argv._[1];
let validationError = '';
const command = command_1.getCommand(groupMap, groupName, commandName);
command.register((key, options) => {
if (argv[key] === undefined && isRequiredOption(options)) {
if (!validationError) {
validationError = `\n${chalk_1.default.bold.red('Error(s):')}`;
}
validationError = `${validationError}\n Required option '${chalk_1.default.redBright(key)}' not provided`;
}
}, null);
if (validationError) {
throw new Error(validationError);
}
return true;
};
}
exports.createOptionValidator = createOptionValidator;
//# sourceMappingURL=validation.js.map