1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const errors_1 = require("@oclif/errors");
|
4 | const errors_2 = require("./errors");
|
5 | function 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 | }
|
33 | exports.validate = validate;
|