import { CCliArgGroup, CCliArgGroupOptions, CCliParseArgs, } from '../c-cli-arg-group'; import { CCliConditionalValue } from '../c-cli-conditional-value'; import { convertToNumber } from '../convert-to-number'; /** Options for {@link CCliNumberArrayArgGroup} a.k.a `ccli.numberArray` */ export type CCliNumberArrayArgGroupOptions = CCliArgGroupOptions; export type CCliNumberArrayArgGroupValue = CCliConditionalValue; /** `number[]`-valued argument group */ export class CCliNumberArrayArgGroup< Optional extends boolean, > extends CCliArgGroup, Optional> { public parse( args: CCliParseArgs, ): CCliNumberArrayArgGroupValue { if (!args) { return this.undefinedAsValue(); } this.assertOneOrMoreArgs(args); return args.map(convertToNumber); } /** {@link CCliNumberArrayArgGroup} factory function */ public static create( options: CCliNumberArrayArgGroupOptions = {}, ): CCliNumberArrayArgGroup { return new CCliNumberArrayArgGroup({ placeholder: ' [...]', ...options, }); } }