Skip to content

Commit

Permalink
fix(command): getGlobal* methods does not return all globals
Browse files Browse the repository at this point in the history
  • Loading branch information
c4spar committed Jun 24, 2020
1 parent 5e07fff commit c7f5a5a
Showing 1 changed file with 69 additions and 64 deletions.
133 changes: 69 additions & 64 deletions packages/command/lib/base-command.ts
Original file line number Diff line number Diff line change
Expand Up @@ -346,18 +346,19 @@ export class BaseCommand<O = any, A extends Array<any> = any> {

const getCompletions = ( cmd: BaseCommand | undefined, completions: ICompleteSettings[] = [], names: string[] = [] ): ICompleteSettings[] => {

if ( cmd && cmd.completions.size ) {

cmd.completions.forEach( ( completion: ICompleteSettings ) => {
if (
completion.global &&
!this.completions.has( completion.name ) &&
names.indexOf( completion.name ) === -1
) {
names.push( completion.name );
completions.push( completion );
}
} );
if ( cmd ) {
if ( cmd.completions.size ) {
cmd.completions.forEach( ( completion: ICompleteSettings ) => {
if (
completion.global &&
!this.completions.has( completion.name ) &&
names.indexOf( completion.name ) === -1
) {
names.push( completion.name );
completions.push( completion );
}
} );
}

return getCompletions( cmd._parent, completions, names );
}
Expand Down Expand Up @@ -947,19 +948,20 @@ export class BaseCommand<O = any, A extends Array<any> = any> {

const getOptions = ( cmd: BaseCommand | undefined, options: IOption[] = [], names: string[] = [] ): IOption[] => {

if ( cmd && cmd.options.length ) {

cmd.options.forEach( ( option: IOption ) => {
if (
option.global &&
!this.options.find( opt => opt.name === option.name ) &&
names.indexOf( option.name ) === -1 &&
( hidden || !option.hidden )
) {
names.push( option.name );
options.push( option );
}
} );
if ( cmd ) {
if ( cmd.options.length ) {
cmd.options.forEach( ( option: IOption ) => {
if (
option.global &&
!this.options.find( opt => opt.name === option.name ) &&
names.indexOf( option.name ) === -1 &&
( hidden || !option.hidden )
) {
names.push( option.name );
options.push( option );
}
} );
}

return getOptions( cmd._parent, options, names );
}
Expand Down Expand Up @@ -1067,20 +1069,21 @@ export class BaseCommand<O = any, A extends Array<any> = any> {

const getCommands = ( cmd: BaseCommand | undefined, commands: BaseCommand[] = [], names: string[] = [] ): BaseCommand[] => {

if ( cmd && cmd.commands.size ) {

cmd.commands.forEach( ( cmd: BaseCommand ) => {
if (
cmd.isGlobal &&
this !== cmd &&
!this.commands.has( cmd._name ) &&
names.indexOf( cmd._name ) === -1 &&
( hidden || !cmd.isHidden )
) {
names.push( cmd._name );
commands.push( cmd );
}
} );
if ( cmd ) {
if ( cmd.commands.size ) {
cmd.commands.forEach( ( cmd: BaseCommand ) => {
if (
cmd.isGlobal &&
this !== cmd &&
!this.commands.has( cmd._name ) &&
names.indexOf( cmd._name ) === -1 &&
( hidden || !cmd.isHidden )
) {
names.push( cmd._name );
commands.push( cmd );
}
} );
}

return getCommands( cmd._parent, commands, names );
}
Expand Down Expand Up @@ -1163,18 +1166,19 @@ export class BaseCommand<O = any, A extends Array<any> = any> {

const getTypes = ( cmd: BaseCommand | undefined, types: ITypeSettings[] = [], names: string[] = [] ): ITypeSettings[] => {

if ( cmd && cmd.types.size ) {

cmd.types.forEach( ( type: ITypeSettings ) => {
if (
type.global &&
!this.types.has( type.name ) &&
names.indexOf( type.name ) === -1
) {
names.push( type.name );
types.push( type );
}
} );
if ( cmd ) {
if ( cmd.types.size ) {
cmd.types.forEach( ( type: ITypeSettings ) => {
if (
type.global &&
!this.types.has( type.name ) &&
names.indexOf( type.name ) === -1
) {
names.push( type.name );
types.push( type );
}
} );
}

return getTypes( cmd._parent, types, names );
}
Expand Down Expand Up @@ -1239,19 +1243,20 @@ export class BaseCommand<O = any, A extends Array<any> = any> {

const getEnvVars = ( cmd: BaseCommand | undefined, envVars: IEnvVariable[] = [], names: string[] = [] ): IEnvVariable[] => {

if ( cmd && cmd.envVars.length ) {

cmd.envVars.forEach( ( envVar: IEnvVariable ) => {
if (
envVar.global &&
!this.envVars.find( env => env.names[ 0 ] === envVar.names[ 0 ] ) &&
names.indexOf( envVar.names[ 0 ] ) === -1 &&
( hidden || !envVar.hidden )
) {
names.push( envVar.names[ 0 ] );
envVars.push( envVar );
}
} );
if ( cmd ) {
if ( cmd.envVars.length ) {
cmd.envVars.forEach( ( envVar: IEnvVariable ) => {
if (
envVar.global &&
!this.envVars.find( env => env.names[ 0 ] === envVar.names[ 0 ] ) &&
names.indexOf( envVar.names[ 0 ] ) === -1 &&
( hidden || !envVar.hidden )
) {
names.push( envVar.names[ 0 ] );
envVars.push( envVar );
}
} );
}

return getEnvVars( cmd._parent, envVars, names );
}
Expand Down

0 comments on commit c7f5a5a

Please sign in to comment.