From 35f118a11329cc40ea7b6fca5a5d124301d17463 Mon Sep 17 00:00:00 2001 From: Ayfri Date: Tue, 31 Aug 2021 10:24:37 +0200 Subject: [PATCH] feat: Add getter isSkipable to CommandArgument class. --- src/classes/arguments/Argument.ts | 4 ++++ src/classes/arguments/ArgumentParser.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/classes/arguments/Argument.ts b/src/classes/arguments/Argument.ts index d0a5b54..04b50d2 100644 --- a/src/classes/arguments/Argument.ts +++ b/src/classes/arguments/Argument.ts @@ -64,4 +64,8 @@ export class CommandArgument { public get isSimple() { return !this.optional && !this.coalescing && !this.defaultValue; } + + public get isSkipable(): boolean { + return this.optional || !!this.defaultValue; + } } diff --git a/src/classes/arguments/ArgumentParser.ts b/src/classes/arguments/ArgumentParser.ts index 219d8c7..7370d76 100644 --- a/src/classes/arguments/ArgumentParser.ts +++ b/src/classes/arguments/ArgumentParser.ts @@ -124,7 +124,7 @@ export class ArgumentParser { i++; } - const argsRequiredCount = this.args.filter(a => a.isSimple); + const argsRequiredCount = this.args.filter(a => !a.isSkipable); if (argsMap.size < argsRequiredCount.length) { for (let i = argsMap.size; i < argsRequiredCount.length; i++) { const currentArgument = argsRequiredCount[i];