import { CCliArgGroup, CCliArgGroupOptions, CCliParseArgs, } from '../c-cli-arg-group'; import { CCliConditionalValue } from '../c-cli-conditional-value'; /** Options for {@link CliStringArgGroup} */ export type CCliStringArgGroupOptions = CCliArgGroupOptions; export type CCliStringArgGroupValue = CCliConditionalValue; /** `string`-valued argument group */ export class CCliStringArgGroup extends CCliArgGroup< CCliStringArgGroupValue, Optional > { public parse( args: CCliParseArgs, ): CCliStringArgGroupValue { if (!args) { return this.undefinedAsValue(); } this.assertSingleArg(args); return args[0]; } /** {@link CCliStringArgGroup} factory function */ public static create( options: CCliStringArgGroupOptions = {}, ): CCliStringArgGroup { return new CCliStringArgGroup({ placeholder: '', ...options, }); } public _optional: Optional = this.options.optional as Optional; }