UNPKG

1.05 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const errors_1 = require("./errors");
4function validate(parse) {
5 function validateArgs() {
6 const maxArgs = parse.input.args.length;
7 if (parse.input.strict && parse.output.argv.length > maxArgs) {
8 const extras = parse.output.argv.slice(maxArgs);
9 throw new errors_1.UnexpectedArgsError({ parse, args: extras });
10 }
11 const requiredArgs = parse.input.args.filter(a => a.required);
12 const missingRequiredArgs = requiredArgs.slice(parse.output.argv.length);
13 if (missingRequiredArgs.length) {
14 throw new errors_1.RequiredArgsError({ parse, args: missingRequiredArgs });
15 }
16 }
17 function validateFlags() {
18 const flags = Object.values(parse.input.flags).filter(f => f.required && f.value === undefined);
19 if (flags.length)
20 throw new errors_1.RequiredFlagError({ parse, flags });
21 }
22 validateArgs();
23 validateFlags();
24}
25exports.validate = validate;