import { CCliArgGroup, CCliArgGroupOptions, CCliParseArgs, } from '../c-cli-arg-group'; import { convertToNumber } from '../convert-to-number'; import { CCliConditionalValue } from '../c-cli-conditional-value'; /** Options for {@link CCliNumberArgGroup} */ export type CCliNumberArgGroupOptions = CCliArgGroupOptions; export type CCliNumberArgGroupValue = CCliConditionalValue; /** `number`-valued command-line argument group */ export class CCliNumberArgGroup extends CCliArgGroup< CCliNumberArgGroupValue, Optional > { public parse( args: CCliParseArgs, ): CCliNumberArgGroupValue { if (!args) { return this.undefinedAsValue(); } this.assertSingleArg(args); return convertToNumber(args[0]); } /** {@link CCliNumberArgGroup} factory function */ public static create( options: CCliNumberArgGroupOptions = {}, ): CCliNumberArgGroup { return new CCliNumberArgGroup({ placeholder: '', ...options, }); } }