UNPKG

@dojo/cli

Version:

Dojo CLI utility

33 lines 1.33 kB
"use strict"; 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