UNPKG

1.36 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const errors_1 = require("@oclif/errors");
4const errors_2 = require("./errors");
5function validate(parse) {
6 function validateArgs() {
7 const maxArgs = parse.input.args.length;
8 if (parse.input.strict && parse.output.argv.length > maxArgs) {
9 const extras = parse.output.argv.slice(maxArgs);
10 throw new errors_2.UnexpectedArgsError({ parse, args: extras });
11 }
12 const requiredArgs = parse.input.args.filter(a => a.required);
13 const missingRequiredArgs = requiredArgs.slice(parse.output.argv.length);
14 if (missingRequiredArgs.length) {
15 throw new errors_2.RequiredArgsError({ parse, args: missingRequiredArgs });
16 }
17 }
18 function validateFlags() {
19 for (let [name, flag] of Object.entries(parse.input.flags)) {
20 if (flag.required && !parse.output.flags[name]) {
21 throw new errors_2.RequiredFlagError({ parse, flag });
22 }
23 for (let also of flag.alsoRequire || []) {
24 if (!parse.output.flags[also]) {
25 throw new errors_1.CLIError(`--${also}= must also be provided when using --${name}=`);
26 }
27 }
28 }
29 }
30 validateArgs();
31 validateFlags();
32}
33exports.validate = validate;