diff --git a/packages/imperative/src/cmd/src/syntax/SyntaxValidator.ts b/packages/imperative/src/cmd/src/syntax/SyntaxValidator.ts index eec05320a..ea0b0be56 100644 --- a/packages/imperative/src/cmd/src/syntax/SyntaxValidator.ts +++ b/packages/imperative/src/cmd/src/syntax/SyntaxValidator.ts @@ -235,7 +235,13 @@ export class SyntaxValidator { if (positional.type === "number") { valid = this.validateNumeric(commandArguments[positional.name], positional, responseObject, true) && valid; // Convert to number for backwards compatability - if (valid) { commandArguments[positional.name] = parseFloat(commandArguments[positional.name]); } + if (valid) { + const changedOptions: ICommandArguments = CliUtils.setOptionValue(positional.name, + [], parseFloat(commandArguments[positional.name])); + for (const [k, v] of Object.entries(changedOptions)) { + commandArguments[k] = v; + } + } } if (!(positional.stringLengthRange == null) && @@ -378,8 +384,14 @@ export class SyntaxValidator { valid = this.validateBoolean(commandArguments[optionDef.name], optionDef, responseObject) && valid; } else if (optionDef.type === "number") { valid = this.validateNumeric(commandArguments[optionDef.name], optionDef, responseObject) && valid; - // Convert to numbers for backwards compatibility - if (valid) { commandArguments[optionDef.name] = parseFloat(commandArguments[optionDef.name]); } + // Convert to numbers for backwards compatibility - sets all possible values + if (valid) { + const changedOptions: ICommandArguments = CliUtils.setOptionValue(optionDef.name, + optionDef.aliases ?? [], parseFloat(commandArguments[optionDef.name])); + for (const [k, v] of Object.entries(changedOptions)) { + commandArguments[k] = v; + } + } } /** * Validate that the option's value is valid json.