Skip to content

Commit

Permalink
fix(flags): standalone option could be combined with options whose va…
Browse files Browse the repository at this point in the history
…lue is optional and has a default value
  • Loading branch information
c4spar committed May 21, 2020
1 parent cb91b85 commit 5cd8287
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 4 deletions.
4 changes: 1 addition & 3 deletions packages/flags/lib/flags.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ export function parseFlags<O = any>( args: string[], opts: IParseOptions = {} ):
let negate = false;

const flags: IFlags = {};
const defaultValues: IGenericObject<boolean> = {};
const literal: string[] = [];
const unknown: string[] = [];

Expand Down Expand Up @@ -112,7 +111,6 @@ export function parseFlags<O = any>( args: string[], opts: IParseOptions = {} ):

if ( typeof option.default !== 'undefined' ) {
flags[ friendlyName ] = typeof option.default === 'function' ? option.default() : option.default;
defaultValues[ friendlyName ] = true;
} else if ( option.args && option.args[ 0 ].optionalValue ) {
flags[ friendlyName ] = true;
} else {
Expand Down Expand Up @@ -241,7 +239,7 @@ export function parseFlags<O = any>( args: string[], opts: IParseOptions = {} ):
}

if ( opts.flags && opts.flags.length ) {
validateFlags( opts.flags, flags, defaultValues, opts.knownFlaks, opts.allowEmpty );
validateFlags( opts.flags, flags, opts.knownFlaks, opts.allowEmpty );
}

return { flags: flags as any as O, unknown, literal };
Expand Down
3 changes: 2 additions & 1 deletion packages/flags/lib/validate-flags.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ interface IFlagOptionsMap {
* @param knownFlaks Don't throw an error if a missing flag is defined in knownFlags (currently not implemented).
* @param allowEmpty Don't throw an error if values is empty.
*/
export function validateFlags( flags: IFlagOptions[], values: IFlags, defaultValues: IGenericObject<boolean> = {}, knownFlaks?: IFlags, allowEmpty?: boolean ): void {
export function validateFlags( flags: IFlagOptions[], values: IFlags, knownFlaks?: IFlags, allowEmpty?: boolean ): void {

const defaultValues: IGenericObject<boolean> = {};
// Set default value's
for ( const option of flags ) {
const name: string = camelCase( option.name );
Expand Down

0 comments on commit 5cd8287

Please sign in to comment.