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